Добавить текст в QPlainTextEdit в PyQT (результат - журнал состояния) - PullRequest
4 голосов
/ 23 марта 2012

Я пытаюсь создать StatusLog, каждый шаг, который происходит в приложении.Например, пользователь щелкнул по кнопке button1, progressBox должен получить строку типа «пользователь нажал кнопку1».

Я искал и нашел ссылку, но не могу разобраться, не знаю как.

Ссылка: Добавление более одной строки в QTextEdit PyQt

Дается мне каждый раз, когда я пытаюсь, AttributeError: объект 'QPlainTextEdit' не имеет атрибута '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        

Ответы [ 2 ]

10 голосов
/ 23 марта 2012

Попробуйте insertPlainText() вместо. В документации не упоминается insertText, поэтому ошибка является весьма наглядной.

5 голосов
/ 23 марта 2012

Для этого вам нужно использовать функцию .appendPlainText(text). Вот документация для него .

...