2016-05-03 53 views
0

我有一個QLineEdit字段和一個QPushButton。 只要QLineEdit爲空,該按鈕應該被禁用。如何禁用按鈕,除非編輯字段不爲空?

如何做到這一點?

+1

最初使按鈕禁用;然後在EditField上,一旦它接受一些輸入,讓它修改按鈕 - 如果有文本,它啓用按鈕,如果用戶刪除了所有文本,則禁用該按鈕。 – dwanderson

+1

您可能想查看[Pyside中的信號和插槽](https://wiki.qt.io/Signals_and_Slots_in_PySide)。當您的QEditLine發出[textChanged信號](https://deptinfo-ensip.univ-poitiers.fr/ENS/pyside-docs/PySide/QtGui/QLineEdit.html#PySide.QtGui.PySide.QtGui.QLineEdit.textChanged)時...以及它的文本改變,然後你可以檢查當前文本是什麼,並相應地設置你的按鈕狀態。 – Hans

回答

4

嗯,我只是總結了他們在評論中說,一些類似的代碼

self.btnButton.setDisable(True) 
self.leInput.textChanged.connect(self.disableButton) 
def disableButton(self): 
    if len(self.leInput.text()) > 0: 
     self.btnButton.setDisable(False) 

,是的,信號/函數名是顯而易見的,你需要檢查更多的文檔/導師

0

這裏是一個班輪解決方案:

self.textBox.textChanged[str].connect(lambda: self.myBtn.setEnabled(self.textBox.text() != "")) 

你仍然需要按鈕的初始狀態設置爲False。儘管你可以在聲明中這樣做。例如

self.myBtn = QtGui.QPushButton("My Button", enabled=False) 
相關問題