某些ttk样式无法从python脚本中访问

时间:2015-01-25 21:59:03

标签: python tkinter ttk

我正试图为我的Tkinter gui使用ttk风格。

当我在命令行上运行时

>>> from ttk import *
>>> print Style().theme_names()
('winnative', 'clam', 'alt', 'default', 'classic', 'vista', 'xpnative')

看起来不错,因为我想要vista风格。但是,使用以下行运行脚本时:

from ttk import *
print Style().theme_names()

输出是:

('clam', 'alt', 'default', 'classic')

等我尝试的时候:

from ttk import *
Style().theme_use("vista")

我明白了:

File "test.py", line 2, in <module>
  Style().theme_use("vista")
File "/usr/lib/python2.7/lib-tk/ttk.py", line 534, in theme_use
  self.tk.call("ttk::setTheme", themename)
_tkinter.TclError: can't find package ttk::theme::vista

不确定它可能是什么,而且我没有太多的运气谷歌搜索。

我在cygwin下的Console2中运行,如果这有任何区别的话。

谢谢!

2 个答案:

答案 0 :(得分:4)

某些ttk主题仅在一个平台上受支持。例如,xpnative,winnative和vista仅适用于Windows。 “aqua”主题仅适用于OSX。我认为其他人可以在任何平台上运行。

如果您正在通过cygwin运行,那么您运行的python版本可能在编译时配置不同,因此它认为它在Linux而不是Windows上运行。因此,它无法访问Windows主题。

答案 1 :(得分:0)

我的猜测是你正在运行Linux或Mac,因为Vista是一个仅适用于Windows的主题。在这方面,可以根据您的操作系统使用可用的主题。