子飞鱼 发表于 2023-11-9 14:28:42

如何使含有汉字和数字、英文的结果对齐?

通过在IDLE设置等宽字体的形式,下面的代码在IDLE中运行 实现了对齐
但是在pyside6做的界面中,输出结果仍然不对齐。是否需要在pyside6中设置等宽字体呢?如何设置?
我的界面是用qtdesigner来做的,输出结果在一个Text Browser 中显示的

m = 1
n = '苹果菠萝'
p = 30.34
print(f'{str(m):<6}{n:<14}{str(p):>05}\n')

m = 30000
n = '桃子'
p = 7.91
print(f'{str(m):<6}{n:<16}{str(p):>05}\n')

isdkz 发表于 2023-11-9 14:29:36

在PySide6中,可以通过设置QFont来实现在界面中显示等宽字体。以下是一个示例代码,展示了如何设置等宽字体并在Text Browser中显示对齐的结果:

from PySide6.QtWidgets import QApplication, QMainWindow, QTextBrowser
from PySide6.QtGui import QFont

class MainWindow(QMainWindow):
    def __init__(self):
      super().__init__()
      
      # 创建一个Text Browser控件
      self.text_browser = QTextBrowser(self)
      self.setCentralWidget(self.text_browser)
      
      # 设置等宽字体
      font = QFont("Courier New")
      self.text_browser.setFont(font)
      
      # 执行对齐的代码
      m = 1
      n = '苹果菠萝'
      p = 30.34
      self.text_browser.append(f'{str(m):<6}{n:<14}{str(p):>05}\n')

      m = 30000
      n = '桃子'
      p = 7.91
      self.text_browser.append(f'{str(m):<6}{n:<16}{str(p):>05}\n')

if __name__ == "__main__":
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec()


在这个示例中,我们创建了一个QMainWindow,并在其中添加了一个Text Browser控件。然后,我们使用QFont来设置等宽字体(Courier New),并将其应用于Text Browser。最后,我们使用 self.text_browser.append() 方法将对齐的结果添加到Text Browser中。

通过这种方式,你可以在PySide6中实现对齐的结果显示。
页: [1]
查看完整版本: 如何使含有汉字和数字、英文的结果对齐?