读书人

在qtablewidget里插入comboBox出现的有

发布时间: 2012-09-29 10:30:01 作者: rapoo

在qtablewidget里插入comboBox出现的问题
使用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?。。这样省去很多麻烦呢。

读书人网 >QT开发

热点推荐