在Qt中在运行时更改对话框按钮的文本

时间:2011-06-26 08:50:13

标签: qt

我有一个名为'Start'的按钮,当它被点击时,会开始一个冗长的操作,我希望它改成一个名为'Stop'的按钮。单击它时的行为显然也会发生变化。实现这一目标的最佳方法是什么 - 通过更改按钮的文本并将“clicked()”信号重新连接到另一个插槽,或者通过两个按钮然后隐藏“开始”并显示“停止”。

1 个答案:

答案 0 :(得分:1)

您的两个选项都有效。一个简单的第三种选择是更改按钮文本(更改图标也是一个好主意),并在某处保存“状态”(播放/不播放)。在您连接的插槽中,根据当前状态执行正确的操作。 (这样你就不必重新连接任何东西了。)

另一种选择是使用设置了setCheckable(true)的按钮。这样,按钮更像是一个切换按钮(第一次点击时保持按下状态,第二次点击时返回),并将其与动态文本/图标更改相结合。

如果您使用此功能,则应使用toggled(bool)信号而不是clicked()信号。 slot参数告诉您按钮是否处于“活动”状态。 (也可以使用isChecked()查询。)