wxPython:退出全屏

时间:2011-07-04 15:30:01

标签: python wxpython

要以全屏模式显示wxPython窗口,请使用:

ShowFullScreen(True)

你怎么走出全屏?我尝试过这种显而易见的方式:

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

但这不起作用。当我运行脚本时,没有任何内容出现。 5秒钟后,屏幕左上角出现大约200x250的窗口,内部没有任何内容。它似乎也没有任何边界。

如果我将其更改为

showFullScreen(True)

然后我陷入全屏窗口,我必须使用Alt + F2 - > xkill离开。

2 个答案:

答案 0 :(得分:5)

看起来您首先需要Show()窗口。 (根据documentation,您不应该这样做。也许这是一个错误。)我在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()

答案 1 :(得分: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,这样您仍然可以访问菜单以再次关闭全屏模式。