我在Linux Mint 17.1 KDE Desktop 4.14.2上使用Python 2.7.6和wxPython 2.8.12.1。我正在尝试开发一个应用程序,其中窗口将开始最大化,并且将没有最大化框或调整大小框。换句话说,用户将无法调整窗口大小。这是我的代码。
import wx
class Frame1(wx.Frame):
def __init__(self, *args, **kwds):
kwds["style"] = (wx.DEFAULT_FRAME_STYLE|wx.MAXIMIZE) & ~ (wx.RESIZE_BORDER|wx.RESIZE_BOX|wx.MAXIMIZE_BOX)
wx.Frame.__init__(self, *args, **kwds)
self.Layout()
self.Show()
if __name__ == "__main__":
a = wx.App(0)
f = Frame1(None, -1, "No Resize")
a.MainLoop()
在KDE桌面上,我没有获得最大化的窗口。我在这里缺少什么?
请帮忙。
感谢。
答案 0 :(得分:0)
RESIZE_BOX不是一个有效的样式,删除它并将MINIZE_BOX添加到要删除的样式后,它适用于Win8和Mint17 with Phoenix以及wxPython 2.8.12.1(gtk2-unicode):
import wx
class Frame1(wx.Frame):
def __init__(self, *args, **kwds):
kwds["style"] = (wx.DEFAULT_FRAME_STYLE|wx.MAXIMIZE) & ~ (wx.RESIZE_BORDER|wx.MAXIMIZE_BOX|wx.MINIMIZE_BOX)
wx.Frame.__init__(self, *args, **kwds)
self.Layout()
self.Show()
if __name__ == "__main__":
a = wx.App(0)
f = Frame1(None, -1, "No Resize")
a.MainLoop(
)
答案 1 :(得分:0)
我在Kubuntu上尝试了一些代码并想出了这个:
import wx
class MyFrame(wx.Frame):
def __init__(self):
style = wx.SYSTEM_MENU | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX
wx.Frame.__init__(self, None, title='Test', style=style)
panel = wx.Panel(self)
btn = wx.Button(panel, label="Close")
btn.Bind(wx.EVT_BUTTON, self.onClose)
self.Show()
self.Maximize(True)
def onClose(self, event):
self.Close()
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame()
app.MainLoop()
关键是调用ShowFullScreen
让它最大化。我还略微编辑了样式标志。您可能还会发现以下文章有用: