2011-07-07 51 views

回答

5

要監視兩線編輯更改:

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信號。

+0

?不要貶低競爭的答案,但截斷的參數會發生什麼? – spraff

+0

@spraff是一個沒有參數的函數調用,它只是調用方法...另一種方式是不可能的。 – RedX

+0

+ +1爲一個整潔,如果不相關的技巧! – spraff

1

連接兩個小部件textChanged信號在同一個插槽,可以連接這樣的不匹配信號/插槽,呼籲

button -> setEnabled (edit1 -> text .size() && edit2 -> text .size()) 
相關問題