Python tkinter import ttk

from tkinter import *
root=Tk()
root.title("Tk GUI")
label=Label(root, text="Hello World!")
count=0
def clickOK():
    global count
    count=count + 1
    label.configure(text="Click OK " + str(count) + " times")
button=Button(root, text="OK", command=clickOK)
label.pack()
button.pack()
root.mainloop()



上面範例中的按鈕看起來似乎不是那麼好看, 所以 Tkinter 後來又推出了加強版的 ttk 模組來美化元件的外觀, 這 ttk 意思是 Themed Tkinter, 亦即主題化版本, 參考 :

https://docs.python.org/2/library/ttk.html

此 ttk 模組包含了 17 種元件, 其中的 11 種是 Tkinter 原本已經有的 :
  1. Label
  2. Button
  3. Radiobutton
  4. Checkbutton
  5. Entry
  6. Frame
  7. Labelframe
  8. Menubutton
  9. Scale
  10. Scrollbar
  11. Panedwindow
另外 6 個是 ttk 推出的新元件 :
  1. Combobox
  2. Notebook
  3. Progressbar
  4. Separator
  5. Sizegrip
  6. Treeview
注意, ttk 須在匯入 tkinter 後才能匯入, 這樣才會蓋掉原來的 tkinter 元件 :

from tkinter import ttk     (建議)



from tkinter.ttk import *    (不建議)

將上面範例用 ttk 改寫如下 :

from tkinter import *
from tkinter.ttk import *
root=Tk()
root.title("ttk GUI")
label=Label(root, text="Hello World!")
count=0
def clickOK():
    global count
    count=count + 1
    label.config(text="Click OK " + str(count) + " times")
button=Button(root, text="OK", command=clickOK)
label.pack()
button.pack()
root.mainloop()




可見按鈕真的變漂亮了!

上面範例使用 star import 共用命名空間不容易 debug, 建議用下面寫法 :

import tkinter as tk
from tkinter import ttk

root=tk.Tk()
root.title("ttk GUI")
label=ttk.Label(root, text="Hello World!")
count=0
def clickOK():
    global count
    count=count + 1
    label.config(text="Click OK " + str(count) + " times")
button=ttk.Button(root, text="OK", command=clickOK)
label.pack()
button.pack()
root.mainloop()

留言

這個網誌中的熱門文章

python serial 模組使用方法 #1

USB HID 教學 #1(轉載)

USB HID 教學 #2 (轉載)