Tkinter簡易教程

來源:互聯網
上載者:User

標籤:

此篇Tkinter學習教程主要介紹以下幾個控制項的用法:
    Label
    Frame
    Entry
    Text
    Button
    Listbox
    Scrollbar
說明每個控制項最後要加上pack().否則控制項是無法顯示的
1.Label
說明:標籤
用法:Label(根對象,【屬性列表】)
屬性:
text    要顯示的文本
bg      背景顏色
bd      外圍3D邊界的寬度
font    字型(顏色、大小)
width   控制項寬度
height  控制項高度
執行個體:

#-*- coding: UTF-8 -*-

__author__ = ’007’

__date__ = ’2016/4/7’

 

from Tkinter import *

root = Tk() # 初始化Tk()

root.title("label-test")    # 設定視窗標題

root.geometry("200x300")    # 設定視窗大小 注意:是x 不是*

root.resizable(width=True, height=False) # 設定視窗是否可以變化長/寬,False不可變,True可變,預設為True

l = Label(root, text="label", bg="pink", font=("Arial",12), width=8, height=3)

l.pack(side=LEFT)   # 這裡的side可以賦值為LEFT  RTGHT TOP  BOTTOM

root.mainloop() # 進入訊息迴圈

運行結果:

2.Frame
說明:在螢幕上建立一塊矩形地區,多作為容器來布局表單
用法:frame(根對象,【屬性列表】)
執行個體:

#-*- coding: UTF-8 -*-

__author__ = ’007’

__date__ = ’2016/4/7’

 

from Tkinter import *

root = Tk() # 初始化Tk()

root.title("frame-test")    # 設定視窗標題

root.geometry("300x200")    # 設定視窗大小 注意:是x 不是*

root.resizable(width=True, height=False) # 設定視窗是否可以變化長/寬,False不可變,True可變,預設為True

Label(root, text="frame", bg="red", font=("Arial",15)).pack()

frm = Frame(root)

#left

frm_L = Frame(frm)

Label(frm_L, text="左上", bg="pink", font=("Arial",12)).pack(side=TOP)

Label(frm_L, text="左下", bg="green", font=("Arial",12)).pack(side=TOP)

frm_L.pack(side=LEFT)

#right

frm_R = Frame(frm)

Label(frm_R, text="右上", bg="yellow", font=("Arial",12)).pack(side=TOP)

Label(frm_R, text="右下", bg="purple", font=("Arial",12)).pack(side=TOP)

frm_R.pack(side=RIGHT)

frm.pack()   # 這裡的side可以賦值為LEFT  RTGHT TOP  BOTTOM

root.mainloop() # 進入訊息迴圈

運行結果:


3.Entry
說明:建立單行文字框
用法:建立 Entry(根對象,【屬性列表】)
   綁定變數 var=StringVar()    e=Entry(根對象, textvariable = var)
 擷取文字框中的值   var.get()
 設定文字框中的值   var.set(item1)
執行個體:

#-*- coding: UTF-8 -*-

__author__ = ’007’

__date__ = ’2016/4/7’

 

from Tkinter import *

root = Tk() # 初始化Tk()

root.title("entry-test")    # 設定視窗標題

root.geometry("300x200")    # 設定視窗大小 注意:是x 不是*

root.resizable(width=True, height=False) # 設定視窗是否可以變化長/寬,False不可變,True可變,預設為True

var = Variable()

e = Entry(root, textvariable=var)

var.set("entry") # 設定文字框中的值

e.pack()   # 這裡的side可以賦值為LEFT  RTGHT TOP  BOTTOM

root.mainloop() # 進入訊息迴圈

運行結果:


4.Text
說明:向該空間內輸入文本
用法:
t = Text(根對象)
插入:t.insert(mark,內容)
刪除:t.delete(mark1,mark2)
其中,mark可以是行號,或者特殊標識,例如
 INSERT:游標的插入點CURRENT:滑鼠的當前位置所對應的字元位置
 END:這個Textbuffer的最後一個字元
 SEL_FIRST:選中文本域的第一個字元,如果沒有選中地區則會引發異常
 SEL_LAST:選中文本域的最後一個字元,如果沒有選中地區則會引發異常
執行個體:

#-*- coding: UTF-8 -*-

__author__ = ’007’

__date__ = ’2016/4/7’

 

from Tkinter import *

root = Tk() # 初始化Tk()

root.title("text-test")    # 設定視窗標題

root.geometry("300x200")    # 設定視窗大小 注意:是x 不是*

root.resizable(width=True, height=False) # 設定視窗是否可以變化長/寬,False不可變,True可變,預設為True

t = Text(root)

t.insert(’1.0’,"text1\n")   # 插入

t.insert(END,"text2\n") # END:這個Textbuffer的最後一個字元

t.insert(’1.0’,"text3\n")

#t.delete(’1.0’,’2.0’)   # 刪除

t.pack()   # 這裡的side可以賦值為LEFT  RTGHT TOP  BOTTOM

root.mainloop() # 進入訊息迴圈

運行結果:

5.Button
說明:建立按鈕
用法:Button(根對象,【屬性列表】)
執行個體:

#-*- coding: UTF-8 -*-

__author__ = ’007’

__date__ = ’2016/4/7’

 

from Tkinter import *

root = Tk() # 初始化Tk()

root.title("button-test")    # 設定視窗標題

root.geometry()    # 設定視窗大小 注意:是x 不是*

 

def printhello():

    t.insert(END,"hello\n")

t = Text()

t.pack()   # 這裡的side可以賦值為LEFT  RTGHT TOP  BOTTOM

Button(root, text="press", command=printhello).pack()

root.mainloop() # 進入訊息迴圈

運行結果:

6.Listbox
說明:清單控制項,可以含有一個或者多個文字框,可單選也可多選
用法:
建立  lb = ListBox(根對象,【屬性列表】)
綁定變數 var = StringVar() lb=ListBox(根對象,listvariable=var)
得到列表中的所有值 var.get()
設定列表中的所有值 var.set((item1,item2,......))
添加:lb.insert(item)
刪除:lb.delete(item,...)
綁定事件 lb.bind(’<ButtonRelease-1>’,函數)
獲得所選中的選項 lb.get(lb.curselection())
屬性:selectmode可以為BROWSE MULTIPL SINGLE
執行個體:

#-*- coding: UTF-8 -*-

__author__ = ’007’

__date__ = ’2016/4/7’

 

from Tkinter import *

root = Tk()

root.title("listbox-test")

root.geometry()

def print_item(event):

    print lb.get(lb.curselection())

var = StringVar()

lb = Listbox(root, listvariable = var)

list_item = [1,2,3,4]

for item in list_item:

    lb.insert(END,item)

lb.delete(2,4)

var.set((’a’,’b’,’c’,’d’))

print var.get()

lb.bind(’<ButtonRelease-1>’,print_item)

lb.pack()

root.mainloop()

運行結果:


7.Scrollbar
說明:垂直滾動控制項
用法:ListBox(根對象,【屬性列表】
執行個體:

#-*- coding: UTF-8 -*-

__author__ = ’007’

__date__ = ’2016/4/7’

 

from Tkinter import *

root = Tk() # 初始化Tk()

root.title("scrl-test")    # 設定視窗標題

root.geometry()    # 設定視窗大小 注意:是x 不是*

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)   # 指定Listbox的yscrollbar的回呼函數為Scrollbar的set,表示捲軸在視窗變化時即時更新

lb.pack(side=LEFT,fill=BOTH)

scrl[’command’] = lb.yview  # 指定Scrollbar的command的回呼函數是Listbar的yview

root.mainloop()

運行結果:

原文來自:部落格園/python客棧

Tkinter簡易教程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.