Python:如何在纯文本编辑中检测文本,然后才启用按钮?

2024-03-29 02:08:12 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的Qt应用程序中,我有一个plainTextEdit框,我希望用户在其中输入他希望python/Qt应用程序为其生成报告的硬件的序列号。因此,HW序列号是我的应用程序必须输入的,如果他没有输入,那么我就不想启用报告GeneratepushButton。你知道吗

  1. 我怎样才能发现他在框中输入了一些文本?然后启动按钮?你知道吗
  2. 如何检测他是否完全删除了他输入的内容?然后禁用按钮?你知道吗

Tags: 用户文本应用程序内容硬件报告qt按钮
1条回答
网友
1楼 · 发布于 2024-03-29 02:08:12

连接到QPlainTextEdit^{}信号。每当文本发生变化时,就会触发此操作。然后可以访问QPlainTextEdit^{}的内容,并使用它来决定是启用还是禁用按钮。你知道吗

下面是一个简单的例子:

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_())

相关问题 更多 >