[英]PyQt5 QTextBrowser - setText - Alignment issue?
I am trying to make a simple GUI console using PyQt5.我正在尝试使用 PyQt5 制作一个简单的 GUI 控制台。 On trying to print the text using QTextBrowser - setText, it loses alignment and looks bad.在尝试使用 QTextBrowser - setText 打印文本时,它失去了对齐并且看起来很糟糕。 but the text is aligned in my python console但文本在我的 python 控制台中对齐
I am using the setText function to display my data frame.我正在使用 setText 函数来显示我的数据框。 On changing the justify parameter of df.to_string(), i am able to see the changed alignment in the python console, but this is not reflected in my Qt console.在更改 df.to_string() 的 justify 参数时,我能够在 python 控制台中看到更改后的对齐方式,但这并没有反映在我的 Qt 控制台中。
Code:代码:
import sys
from GUI_4 import Ui_MainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
import New_Read_Map_File
def window():
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QWidget()
label = QtWidgets.QTextBrowser(MainWindow)
label.setStyleSheet('color: blue')
MainWindow.setGeometry(600,150,800,800)
label.setGeometry(10,10,780,780)
GetData()
label.setText(DisplayData)
MainWindow.show()
sys.exit(app.exec_())
def GetData():
global DisplayData
New_Read_Map_File.read_MapFile_main()
DisplayData = (New_Read_Map_File.df.to_string(col_space = 14,justify = "justify"))
print(DisplayData)
window()
Expected Alignment预期对齐
Observed Qt GUI观察 Qt GUI
The problem is caused by the font, in the case of consoles and many IDES use a monospaced font .问题是由字体引起的,在控制台和许多 IDES 的情况下使用等宽字体。
For example, if you use the Monospace font:例如,如果您使用 Monospace 字体:
import numpy as np
import pandas as pd
from PyQt5 import QtCore, QtGui, QtWidgets
def pandas_to_str():
df = pd.DataFrame({
'A' : 1.,
'B' : pd.Timestamp('20130102'),
'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
'D' : np.array([3] * 4,dtype='int32'),
'E' : pd.Categorical(["test","train","test","train"]),
'F' : 'foo' })
return df.to_string(col_space =14,justify = "justify")
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = QtWidgets.QTextBrowser()
w.setStyleSheet('color: blue')
w.setFont(QtGui.QFont("Monospace"))
w.setWordWrapMode(QtGui.QTextOption.NoWrap)
w.setText(pandas_to_str())
w.showMaximized()
sys.exit(app.exec_())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.