【问题标题】:QTableWidget with checkbox带有复选框的 QTableWidget
【发布时间】:2014-09-28 09:30:08
【问题描述】:

我需要将QTableWidget 与复选框一起使用,而不是在项目中使用文本。复选框必须位于项目的中心。

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

【问题讨论】:

  • 你能在这里至少发布复选框消失的示例的源代码吗?

标签: qt qtablewidget qtablewidgetitem qcheckbox


【解决方案1】:

您可以使用此代码将复选框设置为居中:

   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);

【讨论】:

  • +1 在实际应用中仍然需要实现自定义 QAbstractItemModel
猜你喜欢
  • 2017-07-16
  • 1970-01-01
  • 1970-01-01
  • 2013-06-19
  • 2010-11-16
  • 2018-02-19
  • 2011-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多