Мне нужно использовать QTableWidget
с флажками вместо текста в элементах. Флажок должен быть в центре элемента.
Примеры, которые я пробовал, работают, пока установлен флажок. Если я сниму флажок, он исчезнет.
Мне нужно использовать QTableWidget
с флажками вместо текста в элементах. Флажок должен быть в центре элемента.
Примеры, которые я пробовал, работают, пока установлен флажок. Если я сниму флажок, он исчезнет.
Вы можете установить флажок по центру с помощью этого кода:
QWidget *pWidget = new QWidget();
QCheckBox *pCheckBox = new QCheckBox();
QHBoxLayout *pLayout = new QHBoxLayout(pWidget);
pLayout->addWidget(pCheckBox);
pLayout->setAlignment(Qt::AlignCenter);
pLayout->setContentsMargins(0,0,0,0);
pWidget->setLayout(pLayout);
pMyTableWidget->setCellWidget(0,0,pWidget);
(Я не знаю, хорошо ли я понял вас здесь) И если вы хотите, чтобы ваш флажок исчезал, когда вы снимаете его, вам нужно подключить сигнал щелчка флажка к слоту, который сделает ваш флажок невидимым. Используйте метод подключения следующим образом:
connect(checkbox,SIGNAL(clicked()),this,SLOT(checkboxClicked()));
Вам нужно создать слот checkboxClicked, где вы будете проверять, установлен ли флажок или нет. Если нет, то вы должны сделать его невидимым. Пример:
QCheckBox* Chb = qobject_cast<QCheckBox *>(QObject::sender());
if(!Chb->checked())
Chb->setVisible(false);