Python 2.7:通过Ttk主题的“通用对话框”tkinter接口?

时间:2010-10-21 19:24:28

标签: python windows user-interface tkinter ttk

Python 2.7(32位)Windows:我们正在尝试使用Python 2.7对主题Tkinter(ttk)的支持,以获得简单的GUI,并且给人留下了非常深刻的印象!新主题支持似乎缺乏的一个领域是如何包装特定于操作系统的通用对话框。

更正:换句话说,MessageBoxColorChooser常见对话框具有“丑陋”外观的Win 95风格块状外观按钮与通常显示在这些上的主题(圆角/渐变)按钮XP,Vista和Windows 7下的常见对话框。(我正在所有3个平台上测试相同的,无主题的结果)。

注意:filedialog常用对话框(askopenfilenameaskopenfilenamesasksaveasfilenameaskdirectory)都是正确的主题。

import tkMessageBox as messagebox
messagebox.showinfo()

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

有关让Tkinter的MessageBoxColorChooser常见对话框与操作系统主题兼容(至少在Windows XP或更高版本下)所需要的任何想法?

2 个答案:

答案 0 :(得分:2)

您的观察主要是正确的。我确实在messageboxcolorchooser中看到了您所指的内容。但是,我的文件似乎都有正确的圆形按钮等。

我建议您制作消息框是使用TopLevel小部件创建自己的消息框,然后定义您需要的内容以及不同按钮的相应行为(这肯定比仅仅更难使用消息框,但如果你真的需要新的样式按钮,它将起作用。)

但是,我不认为你可以解决colorchooser问题的解决方案。

我虽然有一分钟,也许Python 3.1已经解决了这个问题,但遗憾的是,我尝试过,事实并非如此。我想如果你需要用户选择一种颜色,按钮就必须是丑陋的。

答案 1 :(得分:0)

获得更好看的对话框的选项是使用pyinstaller将脚本编译为可执行文件。我对此进行了更详细的解释here

tl; dr,看来用pyinstaller进行编译可以让你拥有当前正在运行的操作系统风格的对话框,而不是自定义样式。