当前位置: 代码迷 >> QT开发 >> 在qtablewidget里插入comboBox出现的有关问题
  详细解决方案

在qtablewidget里插入comboBox出现的有关问题

热度:76   发布时间:2016-04-25 04:30:48.0
在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?。。这样省去很多麻烦呢。
  相关解决方案