Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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        
like image 730
Rafael Cardoso Avatar asked Mar 23 '12 15:03

Rafael Cardoso


People also ask

How do I set text in QPlainTextEdit in Python?

If you want to set a selection in QPlainTextEdit just create one on a QTextCursor object and then make that cursor the visible cursor using setCursor() . The selection can be copied to the clipboard with copy() , or cut to the clipboard with cut() . The entire text can be selected using selectAll() .

How do I get text from QPlainTextEdit?

The entire text can be selected using selectAll(). QPlainTextEdit holds a QTextDocument object which can be retrieved using the document() method. You can also set your own document object using setDocument().


1 Answers

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

like image 95
ChristopheD Avatar answered Sep 20 '22 11:09

ChristopheD