如何使用枚举获取 QDialog 的子项(访问按钮)?
How do I get a child of a QDialog (access a button) with an enum?
我有一个按钮,以这种方式分配给 QDialog:
QPushButton *button = ui->buttonBox->button(QDialogButtonBox::StandardButton::Ok);
我如何从 QDialog 获取它?
我想使用:
parentWidget->findChild<QPushButton*>(QDialogButtonBox::StandardButton::Ok);
但是findChild<T>
需要一个QString。
有什么建议吗?
先通过object name获取buttonBox,然后才能获取到你想要的button:
QDialogButtonBox* buttonBox = dialog.findChild<QDialogButtonBox*>("buttonBox");
if (buttonBox)
{
QPushButton* btn = buttonBox->button(QDialogButtonBox::Ok);
if (btn)
{
qDebug() << "Find it!";
}
}
findChild
通过对象名查找 Qt 对象。
你必须先给你的按钮一个对象名称:
setObjectName(const QString &name)
参见文档 here。
我有一个按钮,以这种方式分配给 QDialog:
QPushButton *button = ui->buttonBox->button(QDialogButtonBox::StandardButton::Ok);
我如何从 QDialog 获取它?
我想使用:
parentWidget->findChild<QPushButton*>(QDialogButtonBox::StandardButton::Ok);
但是findChild<T>
需要一个QString。
有什么建议吗?
先通过object name获取buttonBox,然后才能获取到你想要的button:
QDialogButtonBox* buttonBox = dialog.findChild<QDialogButtonBox*>("buttonBox");
if (buttonBox)
{
QPushButton* btn = buttonBox->button(QDialogButtonBox::Ok);
if (btn)
{
qDebug() << "Find it!";
}
}
findChild
通过对象名查找 Qt 对象。
你必须先给你的按钮一个对象名称:
setObjectName(const QString &name)
参见文档 here。