ipe*_*cks 8 python linux ubuntu tkinter ttk
我知道Tkinter不是那么现代,不太酷,也许更好地使用PyQt等.
但有趣的是,Tkinter在Ubuntu(Linux)中看起来并不那么难看.看起来使用内置主题编译的python的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()
Run Code Online (Sandbox Code Playgroud)
如何应用标准的ubuntu主题或至少更好的主题?
谢谢.
可以使用以下命令查看ttk的所有可用主题:
$ python
>>> import ttk
>>> s=ttk.Style()
>>> s.theme_names()
('clam', 'alt', 'default', 'classic')
Run Code Online (Sandbox Code Playgroud)
所以你可以在你的Tkinter版本中使用'clam','alt','default','classic'主题.
在尝试了所有这些之后,我认为最好的是'蛤蜊'.您可以通过以下方式使用此项或任何其他项:
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()
Run Code Online (Sandbox Code Playgroud)
结果:

OS X使用预编译的主题"aqua",因此小部件看起来更好.
此外,Ttk小部件不支持纯Tkinter所做的所有选项.
| 归档时间: |
|
| 查看次数: |
19228 次 |
| 最近记录: |