Frage

Ich WxPython lerne so die meisten Bibliotheken und Klassen sind neu für mich.

Ich erstelle eine Einstellungsdialog Klasse, aber nicht wissen, die beste Art und Weise sicher, dass die OK machen / stornieren (oder Speicher / Schließen), um in der richtigen Reihenfolge für die Plattform ist. Dieses Programm soll sowohl auf GNOME und Windows ausgeführt werden, so dass ich möchte sicherstellen, dass die Tasten in der richtigen Reihenfolge für jede Plattform sind.

Hat WxPython Funktionalität, die mich daran hindert, eine if platform.system() == 'Linux' tun Art von Hack?

War es hilfreich?

Lösung

Das Aussehen eines Dialogs kann sich nur ändern, wenn Sie Lager Dialoge verwenden (wie wx.FileDialog), wenn Sie Ihr eigenes Layout machen das gleiche auf jeder Plattform bleiben.

wx.Dialog hat eine CreateStdDialogButtonSizer Methode, die einen wx.StdDialogButtonSizer mit Standard-Schaltflächen erstellt, wo man Unterschiede in Layout auf unterschiedlichen Plattformen sehen könnte, aber man muss das nicht verwenden.

Andere Tipps

Sie können eine 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.

Nur eine Falte allerdings hinzufügen, auf einem Mac zum Beispiel würde ein Einstellungsdialog nicht OK haben / Abbrechen-Schaltflächen. Es würde automatisch die Bevorzugungen gelten, da sie (oder zumindest auf Dialog schließen) eingegeben wurden. Also Sie würden immer noch in diesem Fall Sniffing etwas Plattform zu tun haben.

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

Es ist das GenericMessageDialog Widget, das das Richtige auf der Plattform abhängig machen sollte (aber ich habe es nie benutzt, damit ich bin nicht sicher, es tut). Siehe die wxPython-Demo.

Sie können mit auch die SizedControls Addon-Bibliothek (es ist Teil von wxPython). Die SizedDialog Klasse hilft Dialoge zu schaffen, die den Human Interface Guidelines von jeder Plattform entsprechen. Siehe die wxPython-Demo.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top