我试着在一个程序中使用QTableView。在我开始的另一个测试项目中,我已经修复了模型中的所有bug。
现在,我尝试在我的主项目中插入模型和QTableView,但与其他项目不同的是,QTableView只会打开半秒,然后立即关闭!然而,相同的代码在测试项目中运行良好。
这是我在测试项目中的代码:
#include <QApplication>
#include <QTableView>
#include "start.h"
#include "mymodel.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTableView tableView;
MyModel myModel(0);
tableView.setModel(&myModel);
tableView.setSelectionBehavior(QAbstractItemView::SelectRows);
tableView.show();
//Start w;
//w.show();
return a.exec();
}下面是主项目中的相关代码:
void Startseite::on_ButtonOK_clicked()
{
switch (ui->menuLeiste->currentIndex()) {
case 0:
{
QTableView tableview;
Model myModel(0);
tableview.setModel(&myModel);
tableview.setSelectionBehavior(QAbstractItemView::SelectRows);
tableview.show();
break;
}
case 1:
{
// other functions...
}
}
}模型是一个QAbstractTableModel。
有人知道为什么TableView会关闭吗?
谢谢!
发布于 2012-08-31 16:23:22
您需要在堆上创建模型和视图,否则它们将在on_ButtonOK_clicked结束时超出范围并被销毁。
它可以在您的测试项目中工作,因为您在main中创建了两者,并且它们只在程序结束时被销毁。
https://stackoverflow.com/questions/12210698
复制相似问题