1
我有一個名爲'Start'的按鈕,當它被點擊時,一個冗長的操作開始,我希望它變成一個名爲'Stop'的按鈕。單擊它時的行爲顯然也會發生變化。通過改變按鈕的文本並將'clicked()'信號重新連接到不同的插槽,或者有兩個按鈕,然後隱藏'開始'並顯示'停止',實現這一點的最佳方式是什麼?在運行時更改對話框按鈕的文本Qt
我有一個名爲'Start'的按鈕,當它被點擊時,一個冗長的操作開始,我希望它變成一個名爲'Stop'的按鈕。單擊它時的行爲顯然也會發生變化。通過改變按鈕的文本並將'clicked()'信號重新連接到不同的插槽,或者有兩個按鈕,然後隱藏'開始'並顯示'停止',實現這一點的最佳方式是什麼?在運行時更改對話框按鈕的文本Qt
你的兩個選項都可以工作。簡單的第三種選擇是更改按鈕文本(更改圖標也是一個好主意),並在某處保存「狀態」(播放/不播放)。在您的連接插槽中,根據當前狀態執行正確的操作。 (這樣你就不必重新連接任何東西)。
另一種選擇是使用setCheckable(true)
組的按鈕。通過這種方式,按鈕更像是一個切換按鈕(第一次點擊時保持壓低狀態,第二次點擊時返回),並將其與動態文本/圖標更改相結合。
如果你使用這個,你應該使用toggled(bool)
信號而不是clicked()
之一。 slot參數告訴你該按鈕是否爲「活動」。 (這也可以用isChecked()
查詢。)