Pregunta

Estoy aprendiendo wxPython, por lo que la mayoría de las bibliotecas y las clases son nuevas para mí.

Estoy creando una clase de diálogo de Preferencias pero no sé cuál es la mejor manera de asegurarme de que los botones Aceptar / Cancelar (o Guardar / Cerrar) estén en el orden correcto para la plataforma. Este programa está diseñado para ejecutarse tanto en GNOME como en Windows, por lo que quiero asegurarme de que los botones estén en el orden correcto para cada plataforma.

¿Proporciona wxPython una funcionalidad que me impide hacer un if platform.system () == 'Linux' de algún modo?

¿Fue útil?

Solución

La apariencia de un cuadro de diálogo solo puede cambiar si usa cuadros de diálogo de valores (como wx.FileDialog), si hace su propio diseño, el diseño se mantendrá igual en todas las plataformas.

wx.Dialog tiene un método CreateStdDialogButtonSizer que crea un wx.StdDialogButtonSizer con botones estándar donde puede ver diferencias en el diseño en diferentes plataformas, pero no tiene que usar eso.

Otros consejos

Puedes usar un StdDialogButtonSizer

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

Mientras sus botones tengan las ID estándar, se colocarán en el orden correcto.

Sin embargo, solo para agregar una arruga, en una Mac, por ejemplo, un cuadro de diálogo de preferencias no tendría botones Aceptar / Cancelar. Se aplicarán automáticamente las preferencias a medida que se ingresaron (o al menos en el cuadro de diálogo cerrado). Así que aún tendrías que hacer un poco de rastreo de plataforma en ese caso.

Si vas a usar wx (o cualquier otro kit de herramientas de la plataforma x), deberías confiar en que hace lo correcto, mon! -)

Existe el widget GenericMessageDialog que debería hacer lo correcto dependiendo de la plataforma (pero nunca lo he usado, así que no estoy seguro de que lo haga). Vea la demostración de wxPython.

También puede usar la biblioteca de complementos SizedControls (es parte de wxPython). La clase SizedDialog ayuda a crear diálogos que se ajustan a las pautas de interfaz humana de cada plataforma. Vea la demostración de wxPython.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top