wxPython:退出全屏模式

3
为了将wxPython窗口显示为全屏模式,您可以使用以下代码:

ShowFullScreen(True)

如何退出全屏模式?我尝试了显而易见的方法:

ShowFullScreen(True)
sleep(5)
ShowFullScreen(False)

但是这个不起作用。当我运行脚本时,没有任何内容出现。5秒钟后,在屏幕左上角大约200x250的位置出现了一个窗口,里面什么都没有。它似乎也没有任何边框。

如果我将此更改为

showFullScreen(True)

然后我遇到了一个全屏窗口的问题,必须使用Alt + F2 -> xkill才能退出。
2个回答

5
看起来你需要先Show()窗口。(根据文档,你不应该这么做。也许这是一个bug。) 我在Mac OS X和Windows上测试了一下,如果你不先调用Show(),它们都会出现问题。
另外请注意,你不应该在主GUI线程中休眠,否则会挂起UI。使用CallLater是一个潜在的解决方案,就像我示例中展示的那样。
工作示例:
import wx

def main():
    app = wx.PySimpleApp()
    frame = wx.Frame(None, -1, 'Full Screen Test')
    frame.Show()
    frame.ShowFullScreen(True)
    wx.CallLater(5000, frame.ShowFullScreen, False)
    app.MainLoop()

if __name__ == '__main__':
    main()

0

ShowFullScreen的文档如下:
ShowFullScreen(show, style=wx.FULLSCREEN_ALL)

Depending on the value of show parameter the window is either shown full screen or restored to its normal state.

Parameters:

    show (bool)
    style (long): is a bit list containing some or all of the following values, which indicate what elements of the window to hide in full-screen mode:
        wx.FULLSCREEN_NOMENUBAR
        wx.FULLSCREEN_NOTOOLBAR
        wx.FULLSCREEN_NOSTATUSBAR
        wx.FULLSCREEN_NOBORDER
        wx.FULLSCREEN_NOCAPTION
        wx.FULLSCREEN_ALL (all of the above)

因此,将全屏切换事件/动作放置在菜单中,并使用以下方式启动全屏模式:
self.window.ShowFullScreen(True, style=(wx.FULLSCREEN_NOTOOLBAR | wx.FULLSCREEN_NOSTATUSBAR |wx.FULLSCREEN_NOBORDER |wx.FULLSCREEN_NOCAPTION))

请注意,我省略了wx.FULLSCREEN_NOMENUBAR选项,这样您仍然可以访问菜单以再次关闭全屏模式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接