WXPython Максимизировать фрейм Отключить изменение размера

Я использую Python 2.7.6 и wxPython 2.8.12.1 в Linux Mint 17.1 KDE Desktop 4.14.2. Я пытаюсь разработать приложение, в котором окно будет развернуто в максимальном размере, и в нем не будет окна максимизации или изменения размера. Другими словами, пользователи не смогут изменить размер окна. Вот мой код

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 у меня не открывается развернутое окно. Что мне здесь не хватает?

Пожалуйста помоги.

Благодарю.

2 ответа

RESIZE_BOX не является допустимым стилем, после того как я его удалю и добавлю MINIZE_BOX к стилям, которые нужно удалить, он работает для меня на Win8 и Mint17 с 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(

)

Я попробовал некоторый код на 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 чтобы получить его максимально. Я также немного отредактировал флаги стиля. Вы также можете найти следующие статьи полезными:

Другие вопросы по тегам