WxPython: кроссплатформенный способ соответствовать порядку кнопок Ok/Cancel

Я изучаю wxPython, поэтому большинство библиотек и классов являются новыми для меня.

Я создаю диалоговый класс Preferences, но не знаю, как лучше убедиться, что кнопки OK/ Отмена (или Сохранить / Закрыть) находятся в правильном порядке для платформы. Эта программа предназначена для работы как в GNOME, так и в Windows, поэтому я хочу убедиться, что кнопки находятся в правильном порядке для каждой платформы.

Предоставляет ли wxPython функциональность, которая мешает мне if platform.system() == 'Linux' вроде взломать?

4 ответа

Решение

Внешний вид диалогового окна может измениться, только если вы используете стандартные диалоговые окна (например, wx.FileDialog), если вы сделаете свой собственный, макет останется неизменным на всех платформах.

У wx.Dialog есть метод CreateStdDialogButtonSizer, который создает wx.StdDialogButtonSizer со стандартными кнопками, где вы можете увидеть различия в макете на разных платформах, но вам не нужно это использовать.

Вы можете использовать StdDialogButtonSizer

http://www.wxpython.org/docs/api/wx.StdDialogButtonSizer-class.html

Пока ваши кнопки имеют стандартные идентификаторы, они будут расположены в правильном порядке.

Просто, чтобы добавить складку, хотя, на Mac, например, диалог настроек не будет иметь кнопок OK / Cancel. Он автоматически применяет настройки по мере их ввода (или, по крайней мере, при закрытии диалога). Так что в этом случае вам все равно придется понюхать платформу.

Есть виджет GenericMessageDialog, который должен делать правильные вещи в зависимости от платформы (но я никогда не использовал его, поэтому я не уверен, что это так). Смотрите демонстрацию wxPython.

Вы также можете использовать аддонную библиотеку SizedControls (она является частью wxPython). Класс SizedDialog помогает создавать диалоги, которые соответствуют Руководству по человеческому интерфейсу каждой платформы. Смотрите демонстрацию wxPython.

Если вы собираетесь использовать wx (или любой другой набор инструментов для x-платформы), вам лучше поверить, что он работает правильно, мон!-)

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