摘要:教你如何使用Python內(nèi)置的Tkinter喳逛,創(chuàng)建第一個(gè)GUI程序棵里。
*寫(xiě)在前面:為了更好的學(xué)習(xí)python姐呐,博主記錄下自己的學(xué)習(xí)路程曙砂。本學(xué)習(xí)筆記基于廖雪峰的Python教程骏掀,如有侵權(quán),請(qǐng)告知?jiǎng)h除笑陈。歡迎與博主一起學(xué)習(xí)Pythonヽ( ̄▽ ̄)? *
目錄
圖形界面
Tkinter
圖形界面
Python支持多種圖形界面的第三方庫(kù)葵袭,包括Tk,wxWidgets蓬网,Qt娜氏,GTK等。
本文介紹如何使用Tkinter進(jìn)行GUI編程窟坐。
Python內(nèi)置了Tkinter绵疲,Tkinter封裝了訪問(wèn)圖形庫(kù)Tk的接口,通過(guò)Tkinter就能完成簡(jiǎn)單的GUI編程徙菠。
Tkinter
創(chuàng)建一個(gè)GUI程序的步驟如下:
1.導(dǎo)入Tkinter模塊郁岩;
2.創(chuàng)建一個(gè)繼承Frame的類(Frame是用來(lái)放控件的容器,你可以理解為一個(gè)矩形框架)萍摊;
3.創(chuàng)建控件
4.指定控件的master如叼;
5.啟動(dòng)消息循環(huán)
第一個(gè)GUI程序:
from tkinter import * # 引入Tkinter包的所有內(nèi)容
class A(Frame): # 定義一個(gè)Frame類
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack() # 把控件放到主界面,實(shí)現(xiàn)布局
self.createWidgets() # 調(diào)用創(chuàng)建控件的方法
def createWidgets(self):
self.helloLabel = Label(self, text='Hello踊沸,world!') # 創(chuàng)建label控件评凝,用于顯示文本或位圖
self.helloLabel.pack() # 把label控件放到主界面
self.quitButton = Button(self, text='Quit', command=self.quit) # 創(chuàng)建button控件审轮,用于退出
self.quitButton.pack()
app = A() # 實(shí)例化A
app.master.title('The first GUI') # 設(shè)置窗口標(biāo)題
app.master.geometry('200x100') # 設(shè)置窗口大小
app.mainloop() # 啟動(dòng)消息循環(huán)
結(jié)果顯示如下:
當(dāng)然疾渣,還能加入其它很多控件崖飘,如加入文本框,讓用戶輸入文本吊圾,然后顯示信息翰蠢。
這時(shí)候我們需要引入一個(gè)messagebox模塊檀何,具體代碼()如下:
from tkinter import *
import tkinter.messagebox as messagebox
class A(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
def createWidgets(self):
self.nameInput = Entry(self) # Entry讓用戶輸入文本
self.nameInput.pack()
self.alertButton = Button(self, text='Hello', command=self.hello) # 加入button控件频鉴,按鈕嗲用hello方法
self.alertButton.pack()
def hello(self):
name = self.nameInput.get() or 'world' # 拿取用戶輸入的文本
messagebox.showinfo('Message', 'Hello, %s' % name) # 彈出消息對(duì)話框
app = A()
app.master.title('Hello World')
app.mainloop()
結(jié)果顯示如下:
核心控件介紹:
控件名稱 | 功能 |
---|---|
Button | 按鈕控件,創(chuàng)建一個(gè)按鈕 |
Canvas | 繪圖控件周荐,用于顯示圖形或文本 |
Checkbutton | 多選框控件僵娃,顯示一個(gè)多項(xiàng)選擇框 |
Entry | 輸入控件,讓用戶輸入文本 |
Text | 文本控件仆嗦,顯示多行文本 |
Frame | 框架控件先壕,存放控件的容器 |
Label | 標(biāo)簽控件谆甜,用于顯示文字或位圖 |
Listbox | 列表框控件规辱,顯示字符串列表 |
Menu | 菜單控件栽燕,顯示菜單欄 |
Menubutton | 菜單按鈕控件,顯示菜單項(xiàng) |
Message | 消息控件浴讯,顯示多行文本蔼啦,與label類似 |
Radiobutton | 單選框控件,顯示一個(gè)單向選擇框 |
Scale | 范圍控件奈籽,創(chuàng)建一個(gè)滑塊用于設(shè)置一個(gè)范圍數(shù)值 |
Scrollbar | 滾動(dòng)條框架鸵赫,當(dāng)界面超過(guò)可視化區(qū)域時(shí)使用 |
Toplevel | 容器框架,用于創(chuàng)建子窗口 |
Python內(nèi)置的Tkinter可以滿足基本的GUI程序的要求狼忱,如果是非常復(fù)雜的GUI程序盗温,建議用操作系統(tǒng)原生支持的語(yǔ)言和庫(kù)來(lái)編寫(xiě)。
以上就是本節(jié)的全部?jī)?nèi)容斧蜕,感謝你的閱讀砚偶。
下一節(jié)內(nèi)容:網(wǎng)絡(luò)編程
有任何問(wèn)題與想法,歡迎評(píng)論與吐槽均芽。
和博主一起學(xué)習(xí)Python吧( ̄▽ ̄)~*