• 3450阅读
  • 4回复

[讨论]QTableView使用中对某个item访问或操作问题 [复制链接]

上一主题 下一主题
离线phyond
 

只看楼主 倒序阅读 楼主  发表于: 2017-05-24
使用qtcreator在主窗口中拖了一个qtableview进来,然后我想在程序中对表格的某一个单元进行“赋值”或其它操作,发现只能对item(0,0)操作可以,操作其它item程序就异常退出,程序如下:
void tablWindow::on_pushButton_clicked()
{
ui->targetTabl->item(0,1)->setBackground(QColor(0,60,10));
}

单是通过度娘找到一种方法,如下:
void tablWindow::on_pushButton_clicked()
{
QTableWidgetItem *item = new QTableWidgetItem("Apple");
    item->setBackgroundColor(QColor(0,60,10));
    item->setTextColor(QColor(200,111,100));
    item->setFont(QFont("Helvetica"));
    ui->targetTabl->setItem(0,3,item);
}
这样是能够成功对item(0,3)完成操作的,单是如果程序需要不断对item进行操作,这样岂不是太费事了?
没有人知道第一种方法是哪的问题吗,或者还有其它简单方式?
离线weiweiqiao

只看该作者 1楼 发表于: 2017-05-24
qtableview在Qt中作为视图和模型共同使用,所以在Qt中有专门的View/Model议题,你如果要使用item,应该和QTableWidget联合使用。
Jobs Insanely Great.
离线phyond

只看该作者 2楼 发表于: 2017-05-24
回 weiweiqiao 的帖子
weiweiqiao:qtableview在Qt中作为视图和模型共同使用,所以在Qt中有专门的View/Model议题,你如果要使用item,应该和QTableWidget联合使用。 (2017-05-24 08:42) 

这个我理解起来有些困难,刚接触qt几天,手里抱着一本qtcreaotr快速入门,可是还是入不了门,这位大虾,我在qtcreator设计界面中添加一个qtable,这个是不包含QTableWidget的?还需要什么设置,再给提示一下
离线weiweiqiao

只看该作者 3楼 发表于: 2017-05-24
回 phyond 的帖子
phyond:这个我理解起来有些困难,刚接触qt几天,手里抱着一本qtcreaotr快速入门,可是还是入不了门,这位大虾,我在qtcreator设计界面中添加一个qtable,这个是不包含QTableWidget的?还需要什么设置,再给提示一下 (2017-05-24 10:38) 

View/Model相当于MVC模式,将数据存储和显示分离。
你添加了个Table,Table既可以添加QTableView使用View/model,也可以添加QTableWidget,使用item。两种不同方式了。
Jobs Insanely Great.
离线dosmlp

只看该作者 4楼 发表于: 2017-05-25
qtablewidget表格默认是空的,所以你item取出来也是空的,访问空指针当然会崩溃
要先往表格里面填QTableWidgetItem才行
快速回复
限100 字节
 
上一个 下一个