2015-06-08 3 views
1

Я попытался установить некоторый стиль для флажка для Qt. Я уже знал, что QtTableWidget имеет QCheckbox. но проблема в том, что я понятия не имею, как установить стиль для флажка QtTableWidget.
Qt - как настроить QTableWidget's checkbox

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



enter image description here

+0

Что вы хотите делать с помощью флажков? – vahancho

+0

Я хочу проверить флаг и обработать некоторую операцию @vahancho – AFN

+0

Попробуйте 'QTableWidget :: setCellWidget'. – Amartel

ответ

0

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

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

Вы можете стиль индикаторов с помощью QAbstractItemView :: indicator {...} (например, QTableView :: indicator: checked, QTableView :: indicator: unchecked и т. д.).

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

Смежные вопросы