Qt — как настроить флажок QTableWidget

Я попытался установить стиль для флажка для 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);

введите описание изображения здесь

1

Решение

Вы можете стилизовать индикаторы с помощью QAbstractItemView :: Indicator {…} (например, QTableView :: Indicator: флажок, QTableView :: Indicator: флажок и т. Д.).

Вы не можете применить стиль непосредственно к QTableItemWidget, но вы можете поместить таблицу стилей в сам QTableWidget или его родительский элемент.

2

Другие решения

Предполагая, что у вас уже есть виджет таблицы с хотя бы одним столбцом и хотя бы одной строкой:

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

По вопросам рекламы [email protected]