liusuxx
2016-02-16 13:36qt5.5执行ui->tableView->setModel(model)提示意外停止
1
qt5.5使用QSQLTE,使用QSqlTableModel查询数据库,一旦执行让tableview中显示数据库数据的语句ui->tableView->setModel(model),
运行就提示已停止工作,求解。
ui界面只有一个tableview。
工程文件结构如图:
代码如下:
1.widget.cpp中
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
model = new QSqlTableModel(this);
model->setTable("student");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
ui->tableView->setModel(model);
/*QTableView *view = new QTableView;
view->setModel(model);
view->show();*/
//ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
2.main.cpp
#include "widget.h"
#include <QApplication>
#include "database.h"
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
if(!createConnetion())
return 1;
Widget w;
w.show();
return a.exec();
}
3.database.h中
#ifndef DATABASE_H
#define DATABASE_H
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QObject>
static bool createConnetion()
{
QSqlDatabase db= QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.db");
if(!db.open()) return false;
QSqlQuery query;
query.exec(QObject::tr("create table student (id int primary key,name vchar)"));
query.exec(QObject::tr("insert into student values (0,'fece0')"));
query.exec(QObject::tr("insert into student values (1,'fece1')"));
query.exec(QObject::tr("insert into student values (2,'fece2')"));
return true;
}
#endif // DATABASE_H
4.widget.h中
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QSqlTableModel>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
QSqlTableModel *model;
};
#endif // WIDGET_H
- 点赞
- 回答
- 收藏
- 复制链接分享
2条回答
为你推荐
- iOS - UITableView - numRowsInSection与cellForRowAtIndexPath不同
- json
- ios
- objective-c
- php
- uitableview
- 1个回答
- 请问QT中的QTableView如何实现鼠标悬停某单元格可以使用Tooltip来显示该单元格的内容呢
- qt
- 4个回答
- Javafx TableView如何添加序号列呢?
- java
- 4个回答
- 求问Qt中点击QtreeView的一个节点数据显示在Qtableview中怎么实现
- qt
- 2个回答
- swift tableview 刷新
- 刷新
- cell
- tableview
- 复选
- swift
- 4个回答
换一换