首页 > 解决方案 > 如何在pyqt4中的文本编辑小部件中显示所有输入的文本行编辑

问题描述

下面是我的代码。我想在文本编辑小部件的行编辑中显示所有输入的文本。每当我在行编辑中输入文本时,文本编辑小部件中都会显示相同的文本。但它被最新的覆盖。但我希望以前的用户也在文本编辑小部件中输入文本。

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):
        self.title = QtGui.QLabel("TO DO APP")
        self.title.setStyleSheet("font: bold 30ft AGENTORANGE")
        self.title.setAlignment(QtCore.Qt.AlignCenter)
        # self.title.move(200,10)
        self.title.resize(90,50)


        self.message_box = QtGui.QLineEdit()
        self.btn = QtGui.QPushButton("add")

        self.btn.clicked.connect(self.message_Chat)

        self.tedit = QtGui.QTextEdit()

        self.hbox = QtGui.QHBoxLayout()
        self.hbox.addWidget(self.message_box)
        self.hbox.addWidget(self.btn)
        # self.btn.move(120,100)
        # self.message_box.move(220,100)

        self.vbox = QtGui.QVBoxLayout()
        self.vbox.addWidget(self.title)
        self.vbox.addLayout(self.hbox)
        self.vbox.addWidget(self.tedit) 

        self.setLayout(self.vbox)

        self.setWindowTitle("To do app")
        self.setGeometry(100,100,500,500)
        self.show()

    def message_Chat(self):
        # print(self.message_box.text()) 
        #print(self.message_box.text())
        text = self.message_box.text()
        self.tedit.setText(text)
        # cursor = self.tedit.textCursor()
        # cursor.movePosition(QtGui.QTextCursor.End)
        # self.tedit.setTextCursor(cursor)
        self.message_box.setText("")

def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

标签: pythonpython-2.7pyqtpyqt4

解决方案


您必须使用该append()方法将文本添加到末尾,另一方面,使用它clear()来清理QLineEditthat更具可读性setText("")

def message_Chat(self):
    text = self.message_box.text()
    self.tedit.append(text)
    self.message_box.clear()

推荐阅读