2009-05-04 6 views
2

Ich lerne wxPython so die meisten Bibliotheken und Klassen sind neu für mich.WxPython: Cross-Plattform-Möglichkeit zur Anpassung OK/Cancel Button Auftrag

Ich erstelle eine Voreinstellungsdialogklasse, weiß aber nicht, wie die Schaltflächen OK/Abbrechen (oder Speichern/Schließen) in der richtigen Reihenfolge für die Plattform angezeigt werden. Dieses Programm soll sowohl auf GNOME als auch auf Windows laufen, deshalb möchte ich sicherstellen, dass die Schaltflächen für jede Plattform in der richtigen Reihenfolge sind.

Bietet WxPython Funktionalität, die verhindert, dass ich eine Art von Hack if platform.system() == 'Linux' mache?

Antwort

4

Das Aussehen eines Dialogs kann sich nur ändern, wenn Sie die Dialogfelder (wie wx.FileDialog) verwenden. Wenn Sie Ihr Layout erstellen, bleibt das Layout auf jeder Plattform gleich.

wx.Dialog verfügt über eine CreateStdDialogButtonSizer-Methode, die einen wx.StdDialogButtonSizer mit Standardschaltflächen erstellt, in denen Sie möglicherweise Unterschiede im Layout auf verschiedenen Plattformen sehen, die Sie jedoch nicht verwenden müssen.

0

Wenn du gehst, wx (oder jede andere x-Plattform-Toolkit) verwenden Sie sollten besser darauf vertrauen, dass sie das Richtige tut, mon! -)

0

Es ist das GenericMessageDialog Widget, das das Recht tun sollten Sache abhängig von der Plattform (aber ich habe es nie benutzt, also bin ich nicht sicher, dass es tut). Siehe die wxPython-Demo.

Sie können auch die Addon-Bibliothek SizedControls verwenden (sie ist Teil von wxPython). Die Klasse SizedDialog hilft bei der Erstellung von Dialogen, die den Richtlinien für die Benutzerschnittstelle jeder Plattform entsprechen. Siehe die wxPython-Demo.

2

können Sie einen StdDialogButtonSizer verwenden

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

Solange Ihre Tasten, um die Standard-IDs werden sie in der richtigen Reihenfolge gesetzt werden.

Um nur eine Falte hinzuzufügen, auf einem Mac zum Beispiel, würde ein Präferenzen Dialog nicht OK/Abbrechen-Schaltflächen haben. Es würde die Einstellungen automatisch so anwenden, wie sie eingegeben wurden (oder zumindest beim Schließen des Dialogs). Sie müssten also in diesem Fall noch etwas plumpsen.