Add text to QPlainTextEdit in PyQT (the result is a status log)

28,873

Solution 1

Try insertPlainText() instead. The documentation does not mention insertText so the error is quite descriptive.

Solution 2

You'd need to use the .appendPlainText(text) function to do it. Here's the documentation for it.

Share:
28,873
Rafael Cardoso
Author by

Rafael Cardoso

Updated on December 16, 2021

Comments

  • Rafael Cardoso
    Rafael Cardoso over 2 years

    I am trying to build a StatusLog, every move that happens on an application. For example, the user clicked in the button1, the progressBox must receive a string like "user clicked the button1".

    I've searched and found a link but I can't put that working out, I don't know how.

    Link: Add more than one line to a QTextEdit PyQt

    Everytime I try it gives me 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        
    
  • Kai Winkler
    Kai Winkler almost 3 years
    The documentation does not exist anymore.