Pergunta

Estou aprendendo wxPython por isso a maioria das bibliotecas e classes são novas para mim.

Estou criando um diálogo de preferências classe, mas não sei a melhor maneira de certificar-se o OK / Cancelar (ou Salvar / fechar) botões são na ordem correta para a plataforma. Este programa destina-se a correr tanto no GNOME e Windows, então eu quero ter certeza de que os botões estão na ordem correta para cada plataforma.

O wxPython fornecer funcionalidade que impede-me de fazer uma espécie if platform.system() == 'Linux' de hack?

Foi útil?

Solução

O aparecimento de um diálogo pode mudar somente se você usar diálogos de ações (como wx.FileDialog), se você fazer o seu próprio layout permanecerá o mesmo em todas as plataformas.

wx.Dialog tem um método CreateStdDialogButtonSizer que cria um wx.StdDialogButtonSizer com botões padrão, onde você pode ver as diferenças no layout em diferentes plataformas, mas você não tem que usá-lo.

Outras dicas

Você pode usar um StdDialogButtonSizer

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

Enquanto seus botões têm as IDs padrão eles serão colocados na ordem correta.

Apenas para adicionar uma ruga, porém, em um Mac, por exemplo, uma preferência de diálogo não teria OK botões / Cancelar. Seria aplicar automaticamente as preferências como foram inscritas (ou pelo menos numa estreita diálogo). Então, você ainda teria que fazer alguma plataforma sniffing nesse caso.

Se você estiver indo para usar wx (ou qualquer outro conjunto de ferramentas de plataforma x) é melhor confiança que ele faz a coisa certa, mon -!)

Há o GenericMessageDialog widget que deve fazer a coisa certa, dependendo da plataforma (mas eu nunca usei isso para que eu não tenho certeza que ele faz). Veja a demo wxPython.

Você também pode usar a biblioteca SizedControls addon (é parte de wxPython). A classe SizedDialog ajuda a criar diálogos que estejam em conformidade com as Diretrizes de interface humana de cada plataforma. Veja a demo wxPython.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top