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


Question

Iam trying to build a StatusLog, every move that happens on 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 dont know how.

Link: Add more than one line to a QTextEdit PyQt

Is given me everytime I try, AttributeError: 'QPlainTextEdit' object has no attribute 'insertText'

Thanks for all. Best Regards.

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        
1
4
5/23/2017 12:00:35 PM

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

10
3/23/2012 3:24:38 PM

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon