Domanda

Sto imparando wxPython, quindi la maggior parte delle librerie e delle classi sono nuove per me.

Sto creando una classe di dialogo Preferenze ma non conosco il modo migliore per assicurarmi che i pulsanti OK / Annulla (o Salva / Chiudi) siano nell'ordine corretto per la piattaforma. Questo programma è progettato per funzionare sia su GNOME che su Windows, quindi voglio assicurarmi che i pulsanti siano nell'ordine corretto per ciascuna piattaforma.

wxPython fornisce funzionalità che mi impediscono di fare un se platform.system () == 'Linux' tipo di hack?

È stato utile?

Soluzione

L'aspetto di una finestra di dialogo può cambiare solo se si utilizzano finestre di dialogo stock (come wx.FileDialog), se lo si crea il layout rimarrà lo stesso su ogni piattaforma.

wx.Dialog ha un metodo CreateStdDialogButtonSizer che crea un wx.StdDialogButtonSizer con pulsanti standard in cui potresti vedere differenze nel layout su piattaforme diverse ma non devi usarlo.

Altri suggerimenti

Puoi usare uno StdDialogButtonSizer

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

Fintanto che i tuoi pulsanti hanno gli ID standard verranno inseriti nell'ordine corretto.

Solo per aggiungere una ruga, ad esempio su un Mac, una finestra di dialogo delle preferenze non avrebbe i pulsanti OK / Annulla. Applicherà automaticamente le preferenze così come sono state inserite (o almeno alla chiusura della finestra di dialogo). Quindi dovresti comunque fare un po 'di sniffing della piattaforma in quel caso.

Se stai per usare wx (o qualsiasi altro toolkit x-platform) ti conviene fidarti che fa la cosa giusta, mon! -)

C'è il widget GenericMessageDialog che dovrebbe fare la cosa giusta a seconda della piattaforma (ma non l'ho mai usato, quindi non sono sicuro che lo faccia). Guarda la demo di wxPython.

Puoi anche usare la libreria del componente aggiuntivo SizedControls (fa parte di wxPython). La classe SizedDialog aiuta a creare finestre di dialogo conformi alle Linee guida per l'interfaccia umana di ciascuna piattaforma. Guarda la demo di wxPython.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top