python - pyqt - 如何制作一个文本区域来写入消息 - 有点像打印到控制台

标签 python qt user-interface pyqt pyqt4

<分区>

我是 pyqt 的新手 - 我目前正在使用它来制作图形的可视化表示。我为此制作了一个自定义小部件,这非常简单。但现在我在不得不使用内置功能时遇到了困难。

我想向我的应用程序添加一个“ View ”并能够向其打印文本(有点像使用 print("blablabla") 打印到控制台时发生的情况)

我尝试使用 pyqt api 来发现什么/如何但是..

http://pyqt.sourceforge.net/Docs/PyQt4/qtgui.html

它包含 41 个文本形式的类 + 其他内容,公平地说,我不知道该使用哪一个?

因此,如果有人可以指出我是哪一个,并且如果您有时间了解如何将它用于我想要的目的,那将不胜感激 ^^

最佳答案

最简单的方法是使用 QTextEdit,可能通过 setReadOnly() 将其设置为只读,并使用 append()insertPlainText() 方法。对于类似的用例,我粗略地使用了如下内容:

基本片段:

...
logOutput = QTextEdit(parent)
logOutput.setReadOnly(True)
logOutput.setLineWrapMode(QTextEdit.NoWrap)

font = logOutput.font()
font.setFamily("Courier")
font.setPointSize(10)

theLayout.addWidget(logOutput)
...

要将任意颜色的文本附加到文本区域的末尾并自动滚动文本区域以便新文本始终可见,您可以使用类似

自动滚动代码段:

...
logOutput.moveCursor(QTextCursor.End)
logOutput.setCurrentFont(font)
logOutput.setTextColor(color)

logOutput.insertPlainText(text)

sb = logOutput.verticalScrollBar()
sb.setValue(sb.maximum())
...

关于python - pyqt - 如何制作一个文本区域来写入消息 - 有点像打印到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16568451/

相关文章:

c++ - 在 QTreeView 中插入和删除行

javascript - 是否可以在水平镜像的html中重复背景图像

python - 我的电报机器人出现 "SSL: CERTIFICATE_VERIFY_FAILED"错误

python - 引用二维列表中每个列表的第 i 个元素

c - 链接到 QT 中构建的动态库时出现 LNK2019(无法解析的外部符号)

c# - 这些是用什么语言制作的

VBA UI 自动化 - Internet Explorer "Save As"

python - python - 如何在python列表中的某些内容之后获取项目?

python - DJango:格式化json序列化

c++ - 为什么不能使用 setData() 来设置 QTreeView 中 Cell 的背景颜色?