我知道Tkinter不是那么现代,不太酷,也许更好地使用PyQt等。
但有趣的是,Tkinter在Ubuntu(Linux)中看起来并不那么难看。看起来使用内置主题编译的python&#t; tkinter的brew版本(在OS X中)看起来不错:
但Ubuntu的Tkinter让我哭泣:
我已经读过,为了好主题,我需要使用ttk,但我不确切知道如何。我的代码如下:
from Tkinter import *
class App():
def __init__(self, master):
frame = Frame(master)
frame.pack()
master.title("Just my example")
self.label = Label(frame, text="Type very long text:")
self.entry = Entry(frame)
self.button = Button(frame,
text="Quit", fg="red", width=20,
command=frame.quit)
self.slogan = Button(frame,
text="Hello", width=20,
command=self.write_slogan)
self.label.grid(row=0, column=0)
self.entry.grid(row=0, column=1)
self.slogan.grid(row=1, column=0)
self.button.grid(row=1, column=1)
def write_slogan(self):
print "Tkinter is easy to use!"
root = Tk()
app = App(root)
root.mainloop()
如何应用标准的ubuntu主题或至少更好的主题?
感谢。
答案 0 :(得分:9)
使用以下命令可以看到ttk的所有可用主题:
$ python
>>> import ttk
>>> s=ttk.Style()
>>> s.theme_names()
('clam', 'alt', 'default', 'classic')
所以你可以使用' clam',' alt','默认',' classic'使用您的Tkinter版本的主题。
在尝试了所有这些之后,我认为最好的是“蛤蜊”。您可以通过以下方式使用此项或任何其他方式:
from Tkinter import *
from ttk import *
class App():
def __init__(self, master):
frame = Frame(master)
frame.pack()
master.title("Just my example")
self.label = Label(frame, text="Type very long text:")
self.entry = Entry(frame)
self.button = Button(frame,
text="Quit", width=15,
command=frame.quit)
self.slogan = Button(frame,
text="Hello", width=15,
command=self.write_slogan)
self.label.grid(row=0, column=0)
self.entry.grid(row=0, column=1)
self.slogan.grid(row=1, column=0, sticky='e')
self.button.grid(row=1, column=1, sticky='e')
def write_slogan(self):
print "Tkinter is easy to use!"
root = Tk()
root.style = Style()
#('clam', 'alt', 'default', 'classic')
root.style.theme_use("clam")
app = App(root)
root.mainloop()
结果:
OS X使用预编译主题" aqua"所以小部件看起来更好。
此外,Ttk小部件不支持纯Tkinter所做的所有选项。
答案 1 :(得分:1)
要使用ttk,你必须导入它。
from tkinter import *
from tkinter import ttk
之后你应该使用像这样的tkinter小部件 - label=ttk.Label()
或button = ttk.Button()
答案 2 :(得分:0)
如果您想使用ttk而不是常规的Tki小部件,请从documentation开始:
from Tkinter import *
from ttk import *
几个ttk小部件(按钮,检查按钮,条目,框架,标签, LabelFrame,Menubutton,PanedWindow,Radiobutton,Scale和Scrollbar) 将自动替换Tk小部件。
您似乎没有使用ttk未涵盖的任何其他小部件。所以这应该有助于并为您启用主题ttk。如果您想查看可用的主题以及如何检查主题,请查看here。
答案 3 :(得分:0)
ttkthemes 是一个具有 25 个可用主题的模块,您可以轻松地将所有主题应用到 ttk 小部件中。
使用以下命令安装模块:-
命令:-
1.pip 在 cmd 或 powershell 中安装 ttkthemes(如果在 Windows 中)
2.pip3 在终端安装 ttkthemes(如果是 Linux)
将安装 ttkthemes 模块
这是一个例子:
# example from: https://ttkthemes.readthedocs.io/en/latest/example.html
from tkinter import ttk # Normal Tkinter.* widgets are not themed!
from ttkthemes import ThemedTk
window = ThemedTk(theme="arc")# you can set any available theme.
ttk.Button(window, text="Quit", command=window.destroy).pack()
window.mainloop()