1

Qtのチェックボックスにスタイルを設定しようとしました。QtTableWidget に QCheckbox があることは既に知っていました。しかし問題は、QtTableWidget のチェックボックスのスタイルを設定する方法がわからないことです。

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

checkBox に setStyleSheet を使用する場合:

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

エラーがあります: 「class 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

少なくとも 1 つの列と少なくとも 1 つの行を持つテーブル ウィジェットが既にあると仮定します。

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 に答える