Question

Python 2.7 (32 bits) de Windows: Nous expérimentons avec le soutien de Python 2.7 pour Tkinter (de ttk) sur le thème de l'interface graphique simple, et de loin venus très impressionné !! Le seul domaine où le nouveau support thématique semble avoir trouver court comment les boîtes de dialogue de common spécifiques du système d'exploitation sont enveloppées.

Correction: En d'autres termes, les boîtes de dialogue communes MessageBox et de ColorChooser ont « laid » à la recherche de style Win 95 polyédrique boutons à la recherche contre les boutons à thème (gradient arrondi de /) qui montrent normalement sur ces boîtes de dialogue courantes sous XP, Vista et windows 7. (je teste sur les 3 plates-formes avec des résultats, un-thème identiques).

Note:. Les boîtes de dialogue communes de filedialog (askopenfilename, askopenfilenames, asksaveasfilename, askdirectory) sont tous correctement le thème

import tkMessageBox as messagebox
messagebox.showinfo()

import tkColorChooser as colorchooser
color = colorchooser.askcolor( parent=root, title='Customize colors' )

Toutes les idées sur ce qui est nécessaire pour obtenir MessageBox et ColorChooser boîtes de dialogue communes de Tkinter pour être OS thème compatible (au moins sous Windows XP ou supérieur)?

Était-ce utile?

La solution

Votre observation est essentiellement correcte. Je ne vois pas ce que vous parlez dans le messagebox et le colorchooser. Cependant, mes filedialogs semblent tous avoir des boutons correctement arrondis, etc.

Ma recommandation pour vous de faire du messagebox est de créer votre propre messagebox en utilisant le widget TopLevel, puis définir ce dont vous avez besoin sur et le comportement approprié pour les différents boutons (il est certainement un peu plus difficile que d'utiliser simplement un messagebox, mais si vous avez vraiment besoin les nouveaux boutons de style, ça va marcher).

Je ne pense pas que vous pouvez pirater ensemble une solution pour le problème de colorchooser, cependant.

Je pensais que pour une minute que peut-être Python 3.1 avait résolu ce problème, mais malheureusement, j'ai essayé et ce n'est pas le cas. Je suppose que si vous avez besoin à l'utilisateur de choisir une couleur, les boutons doivent être laids.

Autres conseils

Une option pour obtenir une meilleure recherche des boîtes de dialogue est de compiler votre script à un fichier exécutable en utilisant pyinstaller. Je l'explique plus thouroughly .

tl;. Dr, il semble que la compilation avec pyinstaller vous permet d'avoir des boîtes de dialogue avec le style de l'OS en cours d'exécution, mais pas des styles personnalisés

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top