wxWidgets对话框没有获得最大化框

时间:2011-12-20 17:08:43

标签: user-interface wxpython wxwidgets

我有一个wxPython(通过wxGlade)应用程序,其中包含一个在样式中设置wx.MAXIMIZE_BOX的对话框,但是当我运行应用程序时,不会出现最大化框。

这是展示行为的最小程序:

#!/usr/bin/env python

import wx

class MyDialog(wx.Dialog):
    def __init__(self, *args, **kwds):
        kwds["style"] = wx.DEFAULT_DIALOG_STYLE|wx.MAXIMIZE_BOX
        wx.Dialog.__init__(self, *args, **kwds)
        self.SetTitle("dialog_1")
        self.Layout()

if __name__ == "__main__":
    app = wx.PySimpleApp(0)
    wx.InitAllImageHandlers()
    dialog_1 = MyDialog(None, -1, "")
    app.SetTopWindow(dialog_1)
    dialog_1.Show()
    app.MainLoop()

请注意wx.MAXIMIZE_BOX已设置,但是当我运行此程序时,我没有在对话框中获得最大化框:

screenshot -- no maximize box shown

这是一个窗口管理器问题吗?

我可以做些什么来让最大化框出现吗? (我的真实对话框中有一堆来自日志文件的滚动文本,单击最大化比手动调整大小以填充屏幕更容易。)

我正在使用:

  • Linux(Ubuntu 10.04 LTS)
  • python-wxgtk,libwxgtk2.8-0,libwxbase2.8-0:2.8.10.1-0ubuntu1.2
  • metacity:1:2.30.1-0ubuntu1.1

1 个答案:

答案 0 :(得分:2)

我在wxWidgets文档中找到了这个:

“在Unix或Linux下,MWM(Motif窗口管理器)或其他窗口管理器识别MHM提示应该针对任何这些样式(包括wxMAXIMIZE_BOX)运行才能生效。”

所以听起来它可能是一个窗口管理器问题。