我正在尝试使用以下语法将QString定义为QWizard页面中的字段:

registerField("MESSAGE", this);

我可以正确设置字段值,并使用QWizardPage::field()获取它的值,但是我总是以下警告:

QWizard::setField:无法写入属性''

我如何创建一个QString字段以免收到这种警告?

最佳答案

使用虚拟QLineEdit:

QLineEdit *dummy = new QLineEdit(this);
dummy->setVisible(false);
registerField("MESSAGE", dummy);

setField("MESSAGE", "bar");

在另一页中:
field("MESSAGE").toString();   <-- "bar"

QLineEdit将向导页作为其父级,因此不会导致内存泄漏。而且,只要您不将其添加到布局并使其不可见,它就不会显示在页面上。

关于c++ - QWizard::setField:无法写入属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30214656/

10-11 21:49