Диалог wxWidgets не получает окно максимизации - PullRequest
0 голосов
/ 20 декабря 2011

У меня есть приложение 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 Ответ

2 голосов
/ 20 декабря 2011

Я нашел это в документах wxWidgets:

"В Unix или Linux MWM (менеджер окон Motif) или другие оконные менеджеры, распознающие подсказки MHM, должны работать для любого из этих стилей (включая wxMAXIMIZE_BOX)чтобы иметь эффект. "

Так что, похоже, это может быть проблема оконного менеджера.

...