выравнивание элемента виджета qt treewidget QCheckBox - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть QTreeWidget, куда я вставляю разные виджеты (QDoubleSpinBox, QSpinBox, QCheckBox ...)

QTreeWidget *t = ui->treeWidget;
QTreeWidgetItem *item = new QTreeWidgetItem();

int c = 0;
QDoubleSpinBox *dspb = new QDoubleSpinBox();
t->setItemWidget(item, c++, dspb);

QSpinBox *spb = new QSpinBox();
t->setItemWidget(item, c++, spb);

QCheckBox *cb = new QCheckBox();
t->setItemWidget(item, c++, cb);

t->addTopLevelItem(item);

Однако виджет cb выглядит проводным, так как флажок выровнен по левому краю. Я хотел бы видеть его в центре.

В: Как изменить флажок, отображаемый в середине ячейки TreeWidget?

Мне необходимо иметь возможность снова получить доступ к элементу cb позже , В настоящее время я использую следующий код:

QTreeWidgetItem *itm = t->topLevelItem(0);
bool checked  = qobject_cast<QCheckBox *>(t->itemWidget(itm,c++))->checkState() == Qt::Checked;

Если мне нужно сделать какое-то обходное решение для централизованного выравнивания, как я могу тогда получить доступ к объекту cb?

1 Ответ

0 голосов
/ 26 февраля 2020

Нашел:

cb->setStyleSheet("margin-left:50%; margin-right:50%;");

работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...