标题:QTableView使用中对某个item访问或操作问题
作者:phyond
日期:2017-05-24 08:25
内容:
使用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进行操作,这样岂不是太费事了?
有没有人知道第一种方法是哪的问题吗,或者还有其它简单方式?
#1 [weiweiqiao 05-24 08:42]
qtableview在Qt中作为视图和模型共同使用,所以在Qt中有专门的View/Model议题,你如果要使用item,应该和QTableWidget联合使用。
#2 回 weiweiqiao 的帖子 [phyond 05-24 10:38]
weiweiqiao:qtableview在Qt中作为视图和模型共同使用,所以在Qt中有专门的View/Model议题,你如果要使用item,应该和QTableWidget联合使用。 (2017-05-24 08:42)
这个我理解起来有些困难,刚接触qt几天,手里抱着一本qtcreaotr快速入门,可是还是入不了门,这位大虾,我在qtcreator设计界面中添加一个qtable,这个是不包含QTableWidget的?还需要什么设置,再给提示一下
#3 回 phyond 的帖子 [weiweiqiao 05-24 13:24]
phyond:这个我理解起来有些困难,刚接触qt几天,手里抱着一本qtcreaotr快速入门,可是还是入不了门,这位大虾,我在qtcreator设计界面中添加一个qtable,这个是不包含QTableWidget的?还需要什么设置,再给提示一下 (2017-05-24 10:38)
View/Model相当于MVC模式,将数据存储和显示分离。
你添加了个Table,Table既可以添加QTableView使用View/model,也可以添加QTableWidget,使用item。两种不同方式了。
#4 [dosmlp 05-25 10:39]
qtablewidget表格默认是空的,所以你item取出来也是空的,访问空指针当然会崩溃
要先往表格里面填QTableWidgetItem才行