python - 如何在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()
解决方案
您必须使用该append()
方法将文本添加到末尾,另一方面,使用它clear()
来清理QLineEdit
that更具可读性setText("")
。
def message_Chat(self):
text = self.message_box.text()
self.tedit.append(text)
self.message_box.clear()
推荐阅读
- python-3.x - 正确使用 re.split()?
- android - firebase auth 的用户 ID 的字符串值以记录 firestore
- file - 如何在 IIS 网络服务器上包含搜索框,以便可以找到驻留在服务器上的文件?
- batch-file - 在批处理文件中运行语句?
- postgresql - 不同的结果取决于我在插入数据之前或之后创建 GIN 索引的时间
- excel - =ISNUMBER(SEARCH()) 公式无法正常工作
- sql - 如何在 SQL Server 中合并两条记录并对一列求和
- powershell - 如何在 Powershell Pipeline 中多次使用 $_(子字符串方法)
- html - 按钮位置不变
- javascript - 在 HTML 代码中按下按钮时如何触发 JavaScript 函数