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

StackOverflow https://stackoverflow.com/questions/818942

Вопрос

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top