Qt如何检查QtableWidget中的状态复选框

标签 qt qtablewidget qtablewidgetitem qcheckbox

最近发现checkbox放在QtableWidget item中间的方法。 但是,我不知道如何检查按钮是否被点击的状态。 你能告诉我如何检查按钮状态吗?

这是我找到的代码:

QWidget *pWidget = new QWidget();
QCheckBox *pCheckBox = new QCheckBox();
QHBoxLayout *pLayout = new QHBoxLayout(pWidget);
pCheckBox->setCheckState(Qt::Checked);
pLayout->addWidget(pCheckBox);
pLayout->setAlignment(Qt::AlignCenter);
pLayout->setContentsMargins(0,0,0,0);
pWidget->setLayout(pLayout);
ui->tableWidget2->setCellWidget(2,2, pWidget);

最佳答案

虽然这已经很晚了,但您可以这样解决:

auto field = ui->tableWidget2->cellWidget(2, 2, pWidget);

std::cout << qobject_cast<QCheckBox*>(field)->isChecked() << std::endl;

这也适用于其他类型(QComboBox 等)。尽管使用 QTableWidgetItem 的复选框功能可能会更好已经有了。

如果您使用三态复选框,此示例可能无法运行,在这种情况下您应该调用:checkState()并将其与 Qt::CheckState 进行比较.如果qobject_cast<T>不行你可以用reinterpret_cast<T> .

关于Qt如何检查QtableWidget中的状态复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20297158/

相关文章:

c++ - QML:如何从 C++ 代码正确地将属性传递给 PluginParameter 值?

c++ - 添加多个 QDockWidget

python - 使用 flags() 创建一个 QTableWidgetItem

c++ - 编辑期间的 QTableWidgetItem text() 属性

c++ - 在 QTableWidget 中区分交替行颜色和选择颜色

qt - 客户端应用程序如何使用 Qt 中的自签名证书连接到 SSL 服务器?

qt - 如何禁用 QTableWidget 滚动到选定的单元格?

c++ - 在 Qt 中填充表格

c++ - 为 QTableWidget 中的单元格设置默认对齐方式

c++ - QTabWidget 选项卡在其中一个选项卡中不显示任何内容