Python 2.7:主题为“通用对话” TKINTER界面?
-
10-10-2019 - |
题
Python 2.7(32位)Windows:我们正在尝试Python 2.7对主题TKINTER的支持(ttk
)对于简单的gui,给人留下了深刻的印象!新主题支持似乎很短的一个领域是如何包装OS特定的常见对话框。
纠正:换句话说, MessageBox
和 ColorChooser
常见的对话框具有“丑陋”的赢得95风格的块状按钮,而主题(圆形/渐变)按钮通常在XP,Vista和Windows 7下出现在这些常见的对话框上。(我正在所有3个平台上测试所有3个平台相同的,未主题的结果)。
注意:filedialog公共对话框(askopenfilename
, askopenfilenames
, asksaveasfilename
, askdirectory
)都是正确的主题。
import tkMessageBox as messagebox
messagebox.showinfo()
import tkColorChooser as colorchooser
color = colorchooser.askcolor( parent=root, title='Customize colors' )
关于获得TKINTER需要的任何想法 MessageBox
和 ColorChooser
通用对话框是兼容OS主题(至少在Windows XP或更高版本下)?
解决方案
您的观察主要是正确的。我确实看到了您在 messagebox
和 colorchooser
. 。但是,我的filedialog似乎都有正确的圆形按钮,等等。
我建议您制作消息框的建议是使用 TopLevel
窗口小部件,然后定义您的需求以及不同按钮的适当行为(绝对比使用Message Box更难,但是如果您确实需要新样式的按钮,则可以使用)。
我认为您无法将其侵犯 colorchooser
但是,问题。
虽然我一分钟也许Python 3.1解决了这个问题,但可悲的是,我尝试过,事实并非如此。我想,如果您需要用户选择颜色,则按钮必须丑陋。
其他提示
获取更好外观的对话框的选项是将脚本编译为可执行文件 pyinstaller
. 。我更加解释 这里.
tl; dr,似乎与 pyinstaller
允许您使用当前正在运行的操作系统的样式的对话框,但不能使用自定义样式。