1

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

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

当我将 setStyleSheet 用于 checkBox 时:

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

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

编辑:我想用 checkBox 做一些操作。这是第一个 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);



在此处输入图像描述

4

2 回答 2

2

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

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

于 2015-06-09T01:51:06.103 回答
0

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

QCheckBox *cb = new QCheckBox(tr("Check me"));
cb->setStyleSheet("background-color: rgb(0, 85, 0);");
tableWidget->setCellWidget(0, 0, cb);
于 2015-06-08T13:36:43.670 回答