1
如何實現只有在兩個lineEdit都填充了文本時才啓用按鈕的功能?只有在填充兩個字段時才啓用按鈕
如何實現只有在兩個lineEdit都填充了文本時才啓用按鈕的功能?只有在填充兩個字段時才啓用按鈕
要監視兩線編輯更改:
connect(lineEdit1, SIGNAL(textChanged(const QString&)), SLOT(checkShouldEnableButton()));
connect(lineEdit2, SIGNAL(textChanged(const QString&)), SLOT(checkShouldEnableButton()));
然後你需要啓用/禁用按鈕時文本是存在於:
void YourWidget::checkShouldEnableButton() {
button->setEnabled(
!lineEdit1->text().isEmpty() && !lineEdit2->text().isEmpty()
);
}
如果你只在乎用戶編輯,您可以使用textEdited(const QString&)信號而不是textChanged信號。
連接兩個小部件textChanged
信號在同一個插槽,可以連接這樣的不匹配信號/插槽,呼籲
button -> setEnabled (edit1 -> text .size() && edit2 -> text .size())
?不要貶低競爭的答案,但截斷的參數會發生什麼? – spraff
@spraff是一個沒有參數的函數調用,它只是調用方法...另一種方式是不可能的。 – RedX
+ +1爲一個整潔,如果不相關的技巧! – spraff