2014-09-04 31 views
1

在我的Qt應用程序中我有一個plainTextEdit框,我期望用戶輸入他希望python/Qt應用程序生成報告的硬件序列號。所以,硬件序列號是我的應用程序的必須輸入,如果他沒有輸入,那麼我不想啓用報告生成pushButtonPython:如何檢測plainTextEdit中的文本,然後才啓用按鈕?

  1. 如何檢測到他在框中輸入了一些文字?然後啓用按鈕?
  2. 如何檢測他是否完全刪除了他已輸入的內容?然後禁用按鈕?

回答

1

連接到QPlainTextEdittextChanged()信號。只要文字發生變化,就會被觸發。然後,您可以訪問QPlainTextEdittoPlainText()的內容並使用它來決定是啓用還是禁用該按鈕。

這裏有一個簡單的例子:

import sys 
from PySide import QtCore, QtGui 

class MainWindow(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     QtGui.QMainWindow.__init__(self, parent) 
     widget = QtGui.QWidget() 
     self.edit = QtGui.QPlainTextEdit() 
     QtCore.QObject.connect(self.edit, QtCore.SIGNAL('textChanged()'), self.handleTextChange) 
     self.button = QtGui.QPushButton('Generate Report') 
     self.button.setEnabled(False) 
     layout = QtGui.QVBoxLayout(widget) 
     layout.addWidget(self.edit) 
     layout.addWidget(self.button) 
     self.setCentralWidget(widget) 

    @QtCore.Slot() 
    def handleTextChange(self): 
     self.button.setDisabled(self.edit.toPlainText() == '') 


app = QtGui.QApplication(sys.argv)  
main = MainWindow() 
main.show() 
sys.exit(app.exec_()) 
相關問題