我使用的是 Visual Studio 2022 和 C QT 5.14.2。
我使用 QT Designer 設定了一個 PushButton 和一個 LineEdit,并給了它們一些初始屬性。但是我在按鈕單擊信號槽功能中遇到了問題,這是我的代碼:
void SocketChat::on_connectButton_clicked() {
appendMessage(ui.connectButton->text()); // output button's text
if (ui.addrEdit->isEnabled() && ui.portEdit->isEnabled()) {
// disabled
ui.addrEdit->setEnabled(false);
ui.connectButton->setText(QStringLiteral("Disconnect"));
appendMessage(ui.connectButton->text()); // output button's text
}
if (ui.addrEdit->isEnabled() && !ui.portEdit->isEnabled()) {
ui_notification->setText(QStringLiteral("Please stop listening."));
}
if (!ui.addrEdit->isEnabled() && ui.portEdit->isEnabled()) {
// enabled
ui.addrEdit->setEnabled(true);
ui.connectButton->setText(QStringLiteral("Connect"));
}
}
按鈕的文字在QT Designer 中被指定為'Connect',功能完成后,按鈕的文字仍然是'Connect'。
appendMessage 每次單擊時,函式都會輸出兩個單詞:
連接斷開
單擊功能正常作業,但在此功能中按鈕的文本已成功更改。但功能完成后,一切都恢復了。按鈕的文字仍然是“連接”。我試過repaint()和update(),他們無法作業。
如何更改小部件的屬性?似乎這些屬性一旦更改就無法初始化。
uj5u.com熱心網友回復:
您缺少一些else關鍵字。
請注意,當您的按鈕被單擊時,第一個if-block(標記為“// disabled”)將被執行并禁用該ui.addrEdit按鈕。由于缺少else關鍵字,程式還會檢查其他if陳述句的條件。由于按鈕現在被禁用,最后一個條件評估為真,因此標記為“//啟用”的塊也會運行。這不是你想要的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/396883.html
上一篇:Androidstudio-使用textview影片添加到10?
下一篇:有沒有辦法從多個中找到一個圖片框
