1
在我的Qt應用程序中我有一個plainTextEdit
框,我期望用戶輸入他希望python/Qt應用程序生成報告的硬件序列號。所以,硬件序列號是我的應用程序的必須輸入,如果他沒有輸入,那麼我不想啓用報告生成pushButton
。Python:如何檢測plainTextEdit中的文本,然後才啓用按鈕?
- 如何檢測到他在框中輸入了一些文字?然後啓用按鈕?
- 如何檢測他是否完全刪除了他已輸入的內容?然後禁用按鈕?
在我的Qt應用程序中我有一個plainTextEdit
框,我期望用戶輸入他希望python/Qt應用程序生成報告的硬件序列號。所以,硬件序列號是我的應用程序的必須輸入,如果他沒有輸入,那麼我不想啓用報告生成pushButton
。Python:如何檢測plainTextEdit中的文本,然後才啓用按鈕?
連接到QPlainTextEdit
的textChanged()
信號。只要文字發生變化,就會被觸發。然後,您可以訪問QPlainTextEdit
到toPlainText()
的內容並使用它來決定是啓用還是禁用該按鈕。
這裏有一個簡單的例子:
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_())