【问题标题】:Qt - how to customizing QTableWidget's checkboxQt - 如何自定义 QTableWidget 的复选框
【发布时间】:2015-06-08 12:10:40
【问题描述】:

我尝试为 Qt 的复选框设置一些样式。我已经知道 QtTableWidget 有 QCheckbox。但问题是我不知道如何为 QtTableWidget 的复选框设置样式。

QTableWidgetItem *checkBoxItem = new QTableWidgetItem();
checkBoxItem->setCheckState(Qt::Unchecked);
table->setItem(row, column, checkBoxItem);

当我使用 setStyleSheet 作为复选框时:

checkBoxItem->setStyleSheet("...");

我有一个错误: “类 QTableWidgetItem”没有名为“setStyleSheet”的成员

已编辑:我想对复选框进行一些操作。这是第一个 QTableWidgetItem 的完整代码:

for (int i = 0; i < 4; ++i)
    m_tableWidget->setRowHeight(i, 3 * em);


QTableWidgetItem *item1 = new QTableWidgetItem(tr("Show Message Preview"));

if (CGlobalZone::m_showMsgPreview)
    item1->setCheckState(Qt::Checked);

else
    item1->setCheckState(Qt::Unchecked);

item1->setFlags(Qt::ItemIsEnabled);
m_tableWidget->setItem(0, 0, item1);



【问题讨论】:

  • 你想用复选框做什么?
  • 我想检查标志并处理一些操作@vahancho
  • 试试QTableWidget::setCellWidget
  • 是否改变了复选框的样式?如何使用它? QTableWidget::setCellWidget(0,0)>setStyleSheet(..)?
  • QTableWidget 的项目不是QWidget 的,所以不能直接应用样式。您需要使用QTableView + 使用自定义复选框编写您自己的委托。

标签: c++ qt checkbox qtablewidget qcheckbox


【解决方案1】:

您可以使用 QAbstractItemView::indicator { ... } 设置指标样式(例如 QTableView::indicator:checked、QTableView::indicator:unchecked 等)。

您不能将样式直接应用于 QTableItemWidget,但您可以将样式表放在 QTableWidget 本身或其父级上。

【讨论】:

    【解决方案2】:

    假设,您已经有一个至少包含一列和至少一行的表格小部件:

    QCheckBox *cb = new QCheckBox(tr("Check me"));
    cb->setStyleSheet("background-color: rgb(0, 85, 0);");
    tableWidget->setCellWidget(0, 0, cb);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多