Я попытался установить стиль для флажка для 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);
Вы можете стилизовать индикаторы с помощью QAbstractItemView :: Indicator {…} (например, QTableView :: Indicator: флажок, QTableView :: Indicator: флажок и т. Д.).
Вы не можете применить стиль непосредственно к QTableItemWidget, но вы можете поместить таблицу стилей в сам QTableWidget или его родительский элемент.
Предполагая, что у вас уже есть виджет таблицы с хотя бы одним столбцом и хотя бы одной строкой:
QCheckBox *cb = new QCheckBox(tr("Check me"));
cb->setStyleSheet("background-color: rgb(0, 85, 0);");
tableWidget->setCellWidget(0, 0, cb);