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

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

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

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

Ответы [ 4 ]

4 голосов
/ 04 мая 2009

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

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

2 голосов
/ 05 мая 2009

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

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

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

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

0 голосов
/ 04 мая 2009

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

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

0 голосов
/ 04 мая 2009

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

...