【问题标题】:Full Screen Gui With Different Screen Sizes In PC PythonPC Python中具有不同屏幕尺寸的全屏GUI
【发布时间】:2018-12-21 17:38:08
【问题描述】:

情况:

  • 我正在制作一个必须全屏的软件
  • 都是 UI 和界面。
  • 我希望它在具有不同分辨率屏幕的计算机上工作 - 所以我需要 GUI 调整到屏幕尺寸:如果屏幕分辨率更小,文本会更小,但它会仍然在屏幕中间
  • 我尝试不使用数字来确定文本的位置,而是获取屏幕分辨率并将其相乘

问题:

文字没有变小。

问题:

我的问题有简单的解决方案吗? python中是否有用于此目的的模块?我目前正在使用 WxPython,但我愿意使用任何其他 GUI 模块。

def Title(object):
    (sizeX, sizeY) = object.GetSize()
    (displayX, displayY) = wx.GetDisplaySize()
    print(displayX)
    print(displayY)
    print(sizeX)
    print(sizeY)
    object.SetPosition((displayX/2 - sizeX/2, displayY*0.01))

【问题讨论】:

  • 您可能还需要确保设置适当的 DPI 缩放比例,因为您可能希望 15" 4k 显示器上的文本(和图标)比 27" 4k 显示器更大展示。 This answer 展示了一种方法。

标签: python user-interface wxpython fullscreen


【解决方案1】:

要调整文本大小以适合屏幕大小,您必须定义自定义字体大小。
虽然我怀疑默认字体大小已经大致正确,因为用户将根据屏幕大小设置系统字体大小。

可以通过如下方式获取当前字体大小:

self.font = wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT)
point_size = self.font.GetPointSize()

根据wx.GetDisplaySize() 的结果定义一个新的、合适的字体大小:

self.font.SetPointSize(new size)

然后在 UI 中的项目上使用 SetFont(font)

self.panel.SetFont(self.font)

【讨论】:

  • 如何使用从 wx.GetDisplaySize() 获得的信息来决定新的字体大小?
  • 我假设鉴于设置了显示尺寸,您将通过反复试验计算或决定每个合适的字体大小,因为只有您知道 UI 的大小和布局。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-18
  • 1970-01-01
  • 2015-02-28
  • 2019-05-28
  • 2012-05-23
  • 1970-01-01
相关资源
最近更新 更多