Qt的tableview显示问题

liumu1209 2011-01-02 07:02:00
这几天开始学Qt,将Qt Creator的一个示例程序改了下,tableview不会显示数据了。
代码如下:
Dialog::Dialog(QWidget *parent) :
QDialog(parent)
// ui(new Ui::Dialog)
{
// ui->setupUi(this);
setupUi(this);
QStandardItemModel model(4, 2);
this->tv_ShowImportData->setModel(&model);

// tableView.setModel(&model);

SpinBoxDelegate delegate;
this->tv_ShowImportData->setItemDelegate(&delegate);
// tableView.setItemDelegate(&delegate);

this->tv_ShowImportData->horizontalHeader()->setStretchLastSection(true);
// tableView.horizontalHeader()->setStretchLastSection(true);

for (int row = 0; row < 4; ++row) {
for (int column = 0; column < 2; ++column) {
QModelIndex index = model.index(row, column, QModelIndex());
model.setData(index, QVariant((row+1) * (column+1)));
}
}

// tableView.setWindowTitle(QObject::tr("Spin Box Delegate"));
// tableView.show();
this->tv_ShowImportData->show();
}


Dialog的tableview成员:tv_ShowImportData怎么在添加数据之后显示它?
...全文
869 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liumu1209 2011-01-02
  • 打赏
  • 举报
回复
以经修正了这个问题。
将model,delegate改为类指针就没事了。
liumu1209 2011-01-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yangglemu 的回复:]

Dialog::Dialog(QWidget *parent) :
QDialog(parent)
// ui(new Ui::Dialog)
{
// ui->setupUi(this);
setupUi(this);
QStandardItemModel model(4, 2);//model是个局部变量,出了构造函数生命周期就Over了
……
[/Quote]
+1
嗯,你说的对,改示例的时候只求能调试成功。。。
不过我对model一直没弄懂是什么,看起来是对数据的抽象组织,但是不懂咋搞的。
  • 打赏
  • 举报
回复
Dialog::Dialog(QWidget *parent) :
QDialog(parent)
// ui(new Ui::Dialog)
{
// ui->setupUi(this);
setupUi(this);
QStandardItemModel model(4, 2);//model是个局部变量,出了构造函数生命周期就Over了
this->tv_ShowImportData->setModel(&model);

要么改成指针
要么改成类的变量(生命周期与Dialog类一样)

当然最好的方法是声明一个类的变量指针
class Dialog:public QDialog
{
private:
QStandardItemModel *model;//这样声明一个指针应该是最好的选择

16,175

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧