问题描述
我的设置是 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()
如何实现表格的正确格式?
解决方法
在 this 帖子中找到答案。
保持简短:
font = QFont("Monospace")
font.setStyleHint(QFont.TypeWriter)
my_plain_text_edit.setFont(font)