2012-02-01 109 views
2

在Qt Designer中我创建了一个与确定,取消QDialogButtonBox一个对话框,并在其“还原为默认值”按钮。过了一段时间,但我想通了,我在执行文件中的信号/插槽如何设置:如何处理QDialogBu​​ttonBox RestoreDefaults按钮

QPushButton* resetButton = m_ui.buttonBox->button(QDialogButtonBox::RestoreDefaults); 
connect(resetButton, SIGNAL(clicked()), this, SLOT(resetDefaultsPressed())); 

我的问题是:有没有一种方法来设置信号/在QtDesigner插槽像您可以用确定和取消按钮?我一直无法找到一个名为RestoreDefaults或类似的信号......我使用的方法,但如果所有信号/插槽设置都在uic生成的.h文件中,它将会很好。

回答

1

Qt Designer只能处理类中声明的信号。

但是您可以编写一个从QDialogButtonBox派生的新类,使用信号clicked来接收哪个按钮角色已被触发,并发出新的信号。

然后你可以在设计器中将你的QDialogButtonBox升级到这个新类,你必须为每个UI文件手动添加信号(左键单击你的升级小部件然后“Change signal/slots ..” 。“),或者编写一个设计器插件以让您的自定义类出现在设计器窗口小部件列表中(有关详细信息,请参见that other answer)。