У меня есть 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
?