带有复选框的QTableWidget

时间:2014-09-28 09:30:08

标签: qt qtablewidget qtablewidgetitem qcheckbox

我需要使用QTableWidget复选框而不是项目中的文字。复选框必须位于项目的中心。

检查复选框时我尝试工作的示例。如果我取消选中复选框,则会消失。

1 个答案:

答案 0 :(得分:3)

您可以将复选框设置为以此代码为中心:

   QWidget *pWidget = new QWidget();
   QCheckBox *pCheckBox = new QCheckBox();
   QHBoxLayout *pLayout = new QHBoxLayout(pWidget);
   pLayout->addWidget(pCheckBox);
   pLayout->setAlignment(Qt::AlignCenter);
   pLayout->setContentsMargins(0,0,0,0);
   pWidget->setLayout(pLayout);
   pMyTableWidget->setCellWidget(0,0,pWidget);

(我不知道我在这里是否理解你好)如果你想取消选中复选框,你需要将复选框的点击信号连接到一个插槽,这会使你的复选框不可见。使用这样的连接方法:

connect(checkbox,SIGNAL(clicked()),this,SLOT(checkboxClicked()));

您需要创建插槽checkboxClicked,您将检查是否选中了复选框。如果没有,那么你必须将它设置为不可见。例如:

  QCheckBox* Chb = qobject_cast<QCheckBox *>(QObject::sender());
  if(!Chb->checked())
      Chb->setVisible(false);