一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python Tkinter圖形工具使用方法及實例解析

Python Tkinter圖形工具使用方法及實例解析

2020-06-16 10:06阿久丶xin Python

這篇文章主要介紹了Python Tkinter圖形工具使用方法及實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

Tkinter 常用組件

按鈕

  • Button 按鈕組件
  • RadioButton 單選框組件
  • CheckButton 選擇按鈕組件
  • Listbox 列表框組件

文本輸組件

  • Entry 單行文本框組件
  • Text 多行文本框組件

標簽組件

  • Label 標簽組件,可以顯示圖片和文字
  • Message 標簽組件, 可以根據內容將文字換行

菜單

  • Menu 菜單組件
  • MenuButton 菜單按鈕組件,可以實用Menu代替

滾動條

  • Scale 滑動組件
  • Scrollbar 滾動條組件

其他組件 Canvas 畫布組件

  • Frame 框架組件,將多個組件編組
  • Toplevel 創建子窗口容器組件

組件的大致實用步驟創建總面板創建面板上各種組件

1.指定組件的父組件,即依附關系

2.利用相應的屬性對組件進行設置

3.給組件安排布局最后啟動總面板的消息循環組件布局

控制組件的擺放方式

三種布局:

  • pack: 按照方位布局
  • place: 按照坐標布局
  • grid: 網格布局

pack布局

  • 最簡單,代碼量最少,挨個擺放,默認從上到下,系統自動設置
  • 通用實用方式為:組件對象.pack(設置......)
  • side:停靠方位,可選值為LEFT,TOP,RIGHT,BOTTOM
  • fill:填充方式,x,y,BOTH,NONE
  • expande:YES/NO 擴充
  • anchor:N,E,S,W,CENTER
  • ipadx:x方向的內邊距
  • ipady:y
  • padx:x的外方向邊界
  • pady:y

grid布局

  • 通用使用方式:組件對象.grid(設置......)
  • 利用row,cblumn編號,都是從0開始
  • sticky:N,E,S,W表示上下左右,用來決定組件從哪個方向開始
  • 支持ipadx,padx等參數,跟pack函數一樣
  • 支持rowspan,columnspan,代表跨行,跨列數列

place布局:

  • 明確方位的擺放
  • 相對位置布局,隨意改變窗口大小會導致混亂
  • 使用place函數,分為絕對布局和相對布局,絕對布局使用X,Y參數
  • 相對布局使用relx,rely,relheight,relwidth

案例1:創建一個自己定義的彈窗、并且里面有文字內容

執行完成就會彈出一個白色定義好的小方框,里面的內容就是你定義的

?
1
2
3
4
5
6
7
8
9
import tkinter
 
base = tkinter.Tk()                # 創建總面板
# 負責標題
base.wm_title("Label Test")            # 創建面板的標題
lb = tkinter.Label(base, text="Pyhton Label")   # 創建一些內容,把創建的內容指定給我之前創建好的名為base的面板,Pyhton Label為面板的內容
# 給相應組件指定布局
lb.pack()                     # 給相應組件指定布局
base.mainloop()                  # 啟動總面板的消息循環(大致意思了解為啟動這個面板)

Python Tkinter圖形工具使用方法及實例解析

案例2:Button案例,創建一個彈窗,里面生成一個按鈕,當按鈕被按下去的時候,執行我定義的函數

?
1
2
3
4
5
6
7
8
9
10
11
import tkinter
def showlabel():
  global baseFrame   # 調用全局變量,baseFrame,也可以把baseFrame = tkinter.Tk() 放到函數上面
  lb = tkinter.Label(baseFrame, text="我是函數里面的內容")
  lb.pack()
 
if __name__ == '__main__':
  baseFrame = tkinter.Tk ()
  btn = tkinter.Button(baseFrame, text="點擊我、就會執行函數", command=showlabel) # command為指定要執行的函數,不填默認不執行
  btn.pack()
  baseFrame.mainloop()

執行結果如下:

Python Tkinter圖形工具使用方法及實例解析

pack布局

  • 最簡單,代碼量最少,挨個擺放,默認從上到下,系統自動設置
  • 通用實用方式為:組件對象.pack(設置......)
  • side:停靠方位,可選值為LEFT,TOP,RIGHT,BOTTOM
  • fill:填充方式,x,y,BOTH,NONE
  • expande:YES/NO 擴充
  • anchor:N,E,S,W,CENTER
  • ipadx:x方向的內邊距
  • ipady:y
  • padx:x的外方向邊界
  • pady:y

案例3:pack 布局案例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# pack 布局案例
import tkinter
 
 
def button1():
  # 函數內所有代碼都是創建一個組件,然后布局
  global baseFreame
  btn1 = tkinter.Button(baseFreame, text='A')
  btn1.pack(side=tkinter.LEFT, expand=tkinter.YES, fill=tkinter.Y)
 
  btn2 = tkinter.Button(baseFreame, text='B')
  btn2.pack(side=tkinter.TOP, expand=tkinter.YES, fill=tkinter.BOTH)
 
  btn3 = tkinter.Button(baseFreame, text='C')
  btn3.pack(side=tkinter.RIGHT, expand=tkinter.YES, fill=tkinter.NONE, anchor=tkinter.NE)
 
  btn4 = tkinter.Button(baseFreame, text='D')
  btn4.pack(side=tkinter.LEFT, expand=tkinter.NO, fill=tkinter.Y)
 
  btn5 = tkinter.Button(baseFreame, text='E')
  btn5.pack(side=tkinter.TOP, expand=tkinter.NO, fill=tkinter.BOTH)
 
  btn6 = tkinter.Button(baseFreame, text='F')
  btn6.pack(side=tkinter.BOTTOM, expand=tkinter.YES)
 
  btn7 = tkinter.Button(baseFreame, text='G')
  btn7.pack(anchor=tkinter.SE)
 
if __name__ == '__main__':
 
  baseFreame = tkinter.Tk()
  button1 ()
  baseFreame.mainloop()

執行結果如下:

Python Tkinter圖形工具使用方法及實例解析

grid布局

  • 通用使用方式:組件對象.grid(設置......)
  • 利用row,cblumn編號,都是從0開始
  • sticky:N,E,S,W表示上下左右,用來決定組件從哪個方向開始
  • 支持ipadx,padx等參數,跟pack函數一樣
  • 支持rowspan,columnspan,代表跨行,跨列數列

案例3:grid布局案例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import tkinter
 
def button1():
  # 函數內所有代碼都是創建一個組件,然后布局
  global baseFreame
  btn1 = tkinter.Label(baseFreame, text='賬戶:')
  btn1.grid(row=0, sticky=tkinter.W)
  en = tkinter.Entry(baseFreame)
  en.grid(row=0, column=1, sticky=tkinter.E)
 
  btn2 = tkinter.Label(baseFreame, text='密碼:')
  btn2.grid(row=1, sticky=tkinter.W)
  en2 = tkinter.Entry(baseFreame)
  en2.grid(row=1, column=1, sticky=tkinter.E)
 
  btn2 = tkinter.Button(baseFreame, text='登陸')
  btn2.grid(row=2, column=1, sticky=tkinter.W)
 
if __name__ == '__main__':
  baseFreame = tkinter.Tk()
  button1()
  baseFreame.mainloop()

執行結果如下:

Python Tkinter圖形工具使用方法及實例解析

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/laod/p/13048563.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产小视频在线免费 | 亚洲美色综合天天久久综合精品 | 亚洲羞羞视频 | 青草视频免费观看在线观看 | 国产成人精品一区二三区在线观看 | 秀婷程仪公欲息肉婷在线观看 | 欧美5g影院 | ferr孕妇videos毛茸茸 | 99视频一区 | 久久99热在线观看7 久久99精品涩AV毛片观看 | 亚洲情射 | 操破苍穹h| 果冻传媒在线视频观看免费 | 精品日韩一区 | 91欧洲在线视精品在亚洲 | 久见久热 这里只有精品 | 男人天堂国产 | 色吊丝每日永久访问网站 | 亚洲色图欧美视频 | 国产一卡2卡3卡四卡精品网 | 亚洲精品午夜久久aaa级久久久 | 视频一区在线免费观看 | 齐天大性之七仙女欲春迅雷链接 | 四虎影院精品在线观看 | 日本精品一卡二卡≡卡四卡 | 娇妻与公陈峰姚瑶小说在线阅读 | 久久爽狠狠添AV激情五月 | 亚洲高清无在码在线电影 | 国产成人精品在线观看 | 亚洲视频在线一区二区三区 | 亚洲一区二区三区深夜天堂 | 亚洲国产情侣一区二区三区 | 欧美大b | 国产精品久久久久无毒 | haodiaocao几万部精彩视频 | 欧美一区精品二区三区 | 美日韩一区二区三区 | 久久99视热频国只有精品 | 男人猛戳女人下部30分钟 | 国产精品国产精品国产三级普 | 金莲你下面好紧夹得我好爽 |