使用setCellWidget往不同单元格中插入同一个comboBox,为什么只在最后插入的单元格显示呢?代码如下:
int main(int argc,char **argv)
{
QApplication app(argc,argv);
QTableWidget* table = new QTableWidget(2,3);
table->setFixedSize(350,150);
table->setHorizontalHeaderLabels(QString("HEADER 1;HEADER 2;HEADER 3").split(";"));
QComboBox *combo = new QComboBox();
combo->addItem("test");
table->setCellWidget(0,1,combo);
table->setCellWidget(0,0,combo);
table->setCellWidget(1,1,combo);//只显示这个
table->setCellWidget(0,2,new QCheckBox("Checkbox"));
table->setCellWidget(1,2,new QCheckBox("Checkbox"));//两个都能显示
table->show();
return app.exec();
}
插入CheckBox时却都能显示,这是Qt的bug还是我把这个方法用错了呢?
另外求助一下在QtableWidget里有什么办法拷贝单元格呢?比如在复制上面的(1,1)单元格的内容(包括widget)到别的单元格,真心求教!!!
------解决方案--------------------
QComboBox *combo = new QComboBox();
combo->addItem("test");
table->setCellWidget(0,1,combo);
table->setCellWidget(0,0,combo);
table->setCellWidget(1,1,combo);//只显示这个
这样写 只声明了一个QComboBox 显示出来肯定是一个啊
要显示三个就要声明三个QComboBox 分别set进去
------解决方案--------------------
写个comboBox的数组吧,集中管理就可以了
------解决方案--------------------
这个貌似没有办法。。。要不你重写cell?。。这样省去很多麻烦呢。