将 PrettyTable 数据打印到 QPlainTextEdit

问题描述

我的设置是 Windows 10、Python 3.7、PyQt5

目标是将格式化表格打印到QPlainTextEdit

我在 prettytable 对象中有一些数据。当我将此数据打印到标准输出时,表格会被完美打印!但是当打印到 QPlainTextEdit(使用 table.get_string())时......它失去了正确的格式。

显示问题的小代码

import sys

from PyQt5.QtWidgets import (
    QApplication,QLabel,QPlainTextEdit,QVBoxLayout,QWidget)
from prettytable import prettytable

class Example(QWidget):

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

self.initUI()

def initUI(self):
    hBox = QVBoxLayout(self)

qpt = QPlainTextEdit(self)
qpt.setReadOnly(True)

x = prettytable()
x.field_names = ["City name","Area","Population","Annual Rainfall"]
x.add_rows(
    [
        ["Adelaide",1295,1158259,600.5],["Brisbane",5905,1857594,1146.4],["Darwin",112,120900,1714.7],["Hobart",1357,205556,619.5],["Sydney",2058,4336374,1214.8],["Melbourne",1566,3806092,646.9],["Perth",5386,1554769,869.4],]
)
qpt.appendplainText(x.get_string())

hBox.addWidget(qpt)

self.resize(400,300)
self.setwindowTitle('QPlainTextEdit')
self.show()

def main():
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

enter image description here

如何实现表格的正确格式?

解决方法

this 帖子中找到答案。

保持简短:

font = QFont("Monospace")
font.setStyleHint(QFont.TypeWriter)
my_plain_text_edit.setFont(font)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...