python - 在PyQT中给QPlainTextEdit添加文本(结果是一个状态日志)

标签 python qt pyqt pyqt4

我正在尝试构建一个 StatusLog,记录应用程序上发生的每一个 Action 。 例如,用户点击了按钮 1,progressBox 必须接收到类似“用户点击了按钮 1”的字符串。

我已经搜索并找到了一个链接,但我不知道如何解决这个问题。

链接:Add more than one line to a QTextEdit PyQt

每次我尝试它都会给我 AttributeError: 'QPlainTextEdit' object has no attribute 'insertText'

from PyQt4 import QtCore, QtGui
import sys, os
from math import ceil
from PyQt4 import QtCore, QtGui, QtNetwork
from qrtools import QR

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):        
(..)
        
        #The button
        self.groupBoxAuthbtn.setSizePolicy(sizePolicy)
        self.groupBoxAuthbtn.setTitle(_fromUtf8(""))
        self.groupBoxAuthbtn.setObjectName(_fromUtf8("groupBoxAuthbtn"))
        self.horizontalLayout_2 = QtGui.QHBoxLayout(self.groupBoxAuthbtn)
        self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
        self.btnAuthenticate = QtGui.QPushButton(self.groupBoxAuthbtn)
        self.btnAuthenticate.setEnabled(True)
        self.btnAuthenticate.setText(QtGui.QApplication.translate("MainWindow", "Auth from Webcam", None, QtGui.QApplication.UnicodeUTF8))
        self.btnAuthenticate.setObjectName(_fromUtf8("btnAuthenticate"))
        self.horizontalLayout_2.addWidget(self.btnAuthenticate)
        self.horizontalLayout.addWidget(self.groupBoxAuthbtn)
        #self.btnAuthenticate.clicked.connect(self.handleTest)

(...)

        # THE STATUS LOG
        self.groupBoxProgress = QtGui.QGroupBox(self.centralwidget)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.groupBoxProgress.sizePolicy().hasHeightForWidth())
        self.groupBoxProgress.setSizePolicy(sizePolicy)
        self.groupBoxProgress.setTitle(QtGui.QApplication.translate("MainWindow", "Status", None, QtGui.QApplication.UnicodeUTF8))
        self.groupBoxProgress.setAlignment(QtCore.Qt.AlignCenter)
        self.groupBoxProgress.setObjectName(_fromUtf8("groupBoxProgress"))
        self.verticalLayout_3 = QtGui.QVBoxLayout(self.groupBoxProgress)
        self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
        
        #Progress
        self.progressBox = QtGui.QPlainTextEdit(self.groupBoxProgress)
        self.progressBox.setPlainText(QtGui.QApplication.translate("MainWindow", "This is the all work report..", None, QtGui.QApplication.UnicodeUTF8))
        self.progressBox.setObjectName(_fromUtf8("progressBox"))
        self.verticalLayout_3.addWidget(self.progressBox)
        self.verticalLayout.addWidget(self.groupBoxProgress)
        
        
        
        
        
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 847, 25))
        self.menubar.setObjectName(_fromUtf8("menubar"))
        self.menuFile = QtGui.QMenu(self.menubar)
        self.menuFile.setTitle(QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8))
        self.menuFile.setObjectName(_fromUtf8("menuFile"))
        self.menuAbout = QtGui.QMenu(self.menubar)
        self.menuAbout.setTitle(QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8))
        self.menuAbout.setObjectName(_fromUtf8("menuAbout"))
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        MainWindow.setStatusBar(self.statusbar)
        self.toolBar = QtGui.QToolBar(MainWindow)
        self.toolBar.setWindowTitle(QtGui.QApplication.translate("MainWindow", "toolBar", None, QtGui.QApplication.UnicodeUTF8))
        self.toolBar.setObjectName(_fromUtf8("toolBar"))
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        self.actionExit = QtGui.QAction(MainWindow)
        self.actionExit.setText(QtGui.QApplication.translate("MainWindow", "Exit", None, QtGui.QApplication.UnicodeUTF8))
        self.actionExit.setShortcut(QtGui.QApplication.translate("MainWindow", "Q", None, QtGui.QApplication.UnicodeUTF8))
        self.actionExit.setObjectName(_fromUtf8("actionExit"))
        self.actionCredits = QtGui.QAction(MainWindow)
        self.actionCredits.setText(QtGui.QApplication.translate("MainWindow", "Credits", None, QtGui.QApplication.UnicodeUTF8))
        self.actionCredits.setShortcut(QtGui.QApplication.translate("MainWindow", "A", None, QtGui.QApplication.UnicodeUTF8))
        self.actionCredits.setObjectName(_fromUtf8("actionCredits"))
        self.menuFile.addSeparator()
        self.menuFile.addAction(self.actionExit)
        self.menuAbout.addAction(self.actionCredits)
        self.menubar.addAction(self.menuFile.menuAction())
        self.menubar.addAction(self.menuAbout.menuAction())
        

        self.retranslateUi(MainWindow)
        
        QtCore.QObject.connect(self.actionExit, QtCore.SIGNAL(_fromUtf8("activated()")), MainWindow.close)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
        MainWindow.setTabOrder(self.btnAuthenticate, self.progressBox)



    def retranslateUi(self, MainWindow):
        pass        

最佳答案

尝试使用 insertPlainText() 代替。 The documentation没有提到 insertText,所以错误非常具有描述性。

关于python - 在PyQT中给QPlainTextEdit添加文本(结果是一个状态日志),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9841820/

相关文章:

python - numpy Mean函数的参数 'a'如何工作?

python - Mysql查询不更新同一条记录

c++ - 错误 : class has no member named ‘show’

python - pyqt导入问题

python - 按字母数字列对 PySide.QtGui.QTreeWidget 进行排序

python - Pandas :根据条件展平列?

python - BTS 正在抓取带有 utf8 错误的文本,但在原始网页上看起来不错

c++ - QMessageBox消失

c++ - 使用 qmake 查找编译器供应商/版本

PyQT删除程序标题栏?