Tkinter模塊("Tk 接口")是Python的標(biāo)準(zhǔn)Tk GUI工具包的接口,位Python的內(nèi)置模塊,直接import tkinter即可使用。
作為實(shí)踐, 用Tkinter做了個(gè)ascii碼轉(zhuǎn)化查詢表
界面
功能
規(guī)劃圖
首先看怎么產(chǎn)生第一個(gè)窗口
from Tkinter import * #引用Tk模塊root = Tk() #初始化Tk()root.mainloop() #進(jìn)入消息循環(huán)
幾個(gè)常用屬性
# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry('200x100') #是x 不是*root.resizable(width=False, height=True) #寬不可變, 高可變,默認(rèn)為Trueroot.mainloop()
介紹以下幾個(gè)控件的用法
說(shuō)明每個(gè)控件最后要加上pack().否則控件是無(wú)法顯示的.
3.1 Label
說(shuō)明
標(biāo)簽
用法
Label(根對(duì)象, [屬性列表])
屬性
以下介紹的控件差不多都有這幾個(gè)屬性, 更詳細(xì)的屬性查看參考網(wǎng)頁(yè)
舉例
# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry('300x200')l = Label(root, text="show", bg="green", font=("Arial", 12), width=5, height=2)l.pack(side=LEFT) #這里的side可以賦值為L(zhǎng)EFT RTGHT TOP BOTTOMroot.mainloop()
效果
3.2 Frame
說(shuō)明
在屏幕上創(chuàng)建一塊矩形區(qū)域,多作為容器來(lái)布局窗體
用法
Frame(根對(duì)象, [屬性列表])
舉例
要在控件中出現(xiàn)這樣的四個(gè)詞語(yǔ)
校訓(xùn)
厚德 敬業(yè)
博學(xué) 樂(lè)群
可以規(guī)劃為
# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry('300x200')Label(root, text='校訓(xùn)'.decode('gbk').encode('utf8'), font=('Arial', 20)).pack()frm = Frame(root)#leftfrm_L = Frame(frm)Label(frm_L, text='厚德'.decode('gbk').encode('utf8'), font=('Arial', 15)).pack(side=TOP)Label(frm_L, text='博學(xué)'.decode('gbk').encode('utf8'), font=('Arial', 15)).pack(side=TOP)frm_L.pack(side=LEFT)#rightfrm_R = Frame(frm)Label(frm_R, text='敬業(yè)'.decode('gbk').encode('utf8'), font=('Arial', 15)).pack(side=TOP)Label(frm_R, text='樂(lè)群'.decode('gbk').encode('utf8'), font=('Arial', 15)).pack(side=TOP)frm_R.pack(side=RIGHT)frm.pack()root.mainloop()
效果
3.3 Entry
說(shuō)明
創(chuàng)建單行文本框
用法
舉例
# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry()var = StringVar()e = Entry(root, textvariable = var)var.set("hello")e.pack() root.mainloop()
效果
3.4 Text
說(shuō)明
向該空間內(nèi)輸入文本
用法
t = Text(根對(duì)象)
插入:t.insert(mark, 內(nèi)容)
刪除:t.delete(mark1, mark2)
其中,mark可以是行號(hào),或者特殊標(biāo)識(shí),例如
舉例
# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry('300x200')t = Text(root)t.insert(1.0, 'hello\n')t.insert(END, 'hello000000\n')t.insert(END, 'nono')t.pack()root.mainloop()
效果
3.5 Button
說(shuō)明
創(chuàng)建按鈕
用法
Button(根對(duì)象, [屬性列表])
舉例
# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry()def printhello(): t.insert('1.0', "hello\n") t = Text()t.pack()Button(root, text="press", command = printhello).pack()root.mainloop()
效果
3.6 Listbox
說(shuō)明
列表控件,可以含有一個(gè)或多個(gè)文本想,可單選也可多選
用法
屬性
selectmode可以為BROWSE MULTIPL SINGLE
舉例
# -*- coding: cp936 -*-from Tkinter import *root = Tk()root.title("hello world")root.geometry()def print_item(event): print lb.get(lb.curselection()) var = StringVar()lb = Listbox(root, listvariable = var)list_item = [1, 2, 3, 4] #控件的內(nèi)容為1 2 3 4for item in list_item: lb.insert(END, item)lb.delete(2, 4) #此時(shí)控件的內(nèi)容為1 3
var.set(('a', 'ab', 'c', 'd')) #重新設(shè)置了,這時(shí)控件的內(nèi)容就編程var的內(nèi)容了print var.get()lb.bind('<ButtonRelease-1>', print_item)lb.pack() root.mainloop()
效果
3.7 Scrollbar
說(shuō)明
在屏幕上創(chuàng)建一塊矩形區(qū)域,多作為容器來(lái)布局窗體
用法
Frame(根對(duì)象, [屬性列表]), 最長(zhǎng)用的用法是和別的控件一起使用.
舉例
from Tkinter import *root = Tk()root.title("hello world")root.geometry()def print_item(event): print lb.get(lb.curselection()) var = StringVar()lb = Listbox(root, height=5, selectmode=BROWSE, listvariable = var)lb.bind('<ButtonRelease-1>', print_item)list_item = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]for item in list_item: lb.insert(END, item) scrl = Scrollbar(root)scrl.pack(side=RIGHT, fill=Y)lb.configure(yscrollcommand = scrl.set)lb.pack(side=LEFT, fill=BOTH)scrl['command'] = lb.yviewroot.mainloop()
效果
代碼
文本
參考資料
通用控件屬性:http://my.oschina.net/TyLucifer/blog/112961
文件路徑:http://blog.sina.com.cn/s/blog_76129c6f0101892q.html
聯(lián)系客服