在全屏幕中强制在wx.Python中设置分辨率

时间:2012-04-27 18:50:47

标签: python wxpython

我正在wx.Python中创建一个设置为全屏的程序,但我有一个关于屏幕分辨率的未解决的问题。

我知道如何检测窗口的大小,并按比例设置项目的位置。我的程序目前正在这样做。

但是无论显示分辨率如何,是否可以强制全屏以我选择的固定分辨率显示? (如果是的话,我可以制作一个宽屏和一个全屏布局来覆盖每个人。)

我已经找到了解决方法,但找不到领先优势!也许在wx.Python中根本不可能。但如果没有,有人能指出我正确的方向吗?

感谢您的时间!

2 个答案:

答案 0 :(得分:1)

我认为你提出的建议是不可能的。如果显示器的分辨率设置为1900x1600并且您将应用程序设置为800x600,那么应用程序将不会全屏显示。您无法全屏显示并且低于显示器的分辨率。如果您希望应用程序可用,我认为您的应用程序不能大于显示器的最大分辨率。

你能设置Frame的大小吗?当然可以。您在实例化框架时执行此操作。你能全屏吗?对。框架对象有一个名为ShowFullScreen()的方法,仅用于此目的。您也可以使用样式标志来修改它。另请参阅http://wiki.wxpython.org/Using%20Frame.ShowFullScreen

答案 1 :(得分:0)

实际上,您可以强制使用特定的视频模式/分辨率。根据您的显示器/驱动器,结果(在LCD屏幕上)可以按比例放大以填充显示器或显示在屏幕的子矩形中(例如信箱)。但是,除非您需要特定的输出分辨率(例如,视频捕获或输出到特定设备),否则实际上可能并不是您想要的。执行此操作的wxPython代码类似于:

display = wx.Display(0)  # if you have multiple monitors, use its index
desired_mode = wx.VideoMode(width, height, color_depth)
supported_modes = display.GetModels(desired_mode)
if len(supported_modes) > 0:
    display.ChangeMode(supported_modes[0]) # just use the first match for now