欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的tkinter庫簡單案例詳解

 更新時間:2022年01月23日 17:18:54   作者:A-L-Kun  
tkinter?是?Python?的標(biāo)準(zhǔn)?GUI?庫,Python?使用?tkinter?可以快速的創(chuàng)建?GUI?應(yīng)用程序,今天通過本文給大家分享Python中的tkinter庫簡單案例詳解,需要的朋友可以參考下

TKinter庫,Python 的 GUI 庫非常多,之所以選擇 Tkinter,一是最為簡單,二是自帶庫,不需下載安裝,隨時使用,跨平臺兼容性非常好,三則是從需求出發(fā)的,Python 在實(shí)際應(yīng)用中極少用于開發(fā)復(fù)雜的桌面應(yīng)用,畢竟,Python 的各種 GUI 工具包都“一般得很”,不具備優(yōu)勢。

案例一

Label & Button 標(biāo)簽和按鈕

import tkinter as tk
 
window = tk.Tk()  # 實(shí)例化Tk
window.title("muy window")  # 設(shè)置標(biāo)題
window.geometry("200x100")  # 設(shè)置窗口的大小
var1 = tk.StringVar()  # 定義tk變量
l1 = tk.Label(window, textvariable=var1, bg="green", font=("Arial", 12), width=15, height=2)  # 設(shè)置標(biāo)簽,內(nèi)容顯示為var1變量
l1.pack()  # 擺放這個標(biāo)簽
hit_me1 = False
def hit_me():
    global hit_me1
    if not hit_me1:
        hit_me1 = True
        var1.set("this is tk")  # 給變量賦值
    else:
        hit_me1 = False
        var1.set("this is tk, too")
b1 = tk.Button(window, text="hit me", width=15, height=2, command=hit_me)  # 點(diǎn)擊按鈕,運(yùn)行hit_me這個函數(shù)
b1.pack()
window.mainloop()  # 顯示窗口

案例二

Entry & Text 輸入和文本框

import tkinter as tk
 
window = tk.Tk()  # 實(shí)例化Tk
window.title("muy window")  # 設(shè)置標(biāo)題
window.geometry("200x150")  # 設(shè)置窗口的大小
e = tk.Entry(window, show=None)  # 如果輸入密碼的話,show="*"
e.pack()
def insert_point():
    var = e.get()  # 得到文本輸入框的值
    t.insert("insert", var)  # 文本放到光標(biāo)位置
def insert_end():
    var = e.get()
    t.insert("end", var)  # 將文本放到文本框的末尾
    # t.insert(1.1, var)  # 將文本放到第一行第一列
b1 = tk.Button(window, text="insert point", width=15, height=2, command=insert_point).pack()  # 定義一個按鈕,顯示在光標(biāo)位置插入文本
b2 = tk.Button(window, text="insert end", width=15, height=2, command=insert_end).pack()  # 在末尾出插入
t = tk.Text(window, height=2, width=15)
t.pack()  # 注意不能一行寫完,pack要寫在下一行
window.mainloop()  # 顯示窗口

案例三

Listbox 部件

import tkinter as tk
 
window = tk.Tk()  # 實(shí)例化Tk
window.title("muy window")  # 設(shè)置標(biāo)題
window.geometry("200x150")  # 設(shè)置窗口的大小
var1 = tk.StringVar()
l = tk.Label(window, bg="yellow", width=4, textvariable=var1)
l.pack()
def print_selection():
    var = lb.get(lb.curselection())  # 得到鼠標(biāo)點(diǎn)擊的內(nèi)容
    var1.set(var)  # 將值賦值給var1
b1 = tk.Button(window, text="insert point", width=15, height=2,
               command=print_selection).pack()  # 定義一個按鈕,顯示在光標(biāo)位置插入文本
var2 = tk.StringVar()  # 存儲可迭代對象的值
var2.set((1, 2, 3, 4))  # 列表也可,設(shè)置初始值
lb = tk.Listbox(window, listvariable=var2)
list_item = [1, 2, 11, 54]
for i in list_item:
    lb.insert("end", i)  # 向列表框中插入值
lb.delete(1)  # 刪除下標(biāo)索引為2的值
lb.pack()
window.mainloop()  # 顯示窗口

案例四

Radiobutton 選擇按鈕

import tkinter as tk
 
window = tk.Tk()  # 實(shí)例化Tk
window.title("muy window")  # 設(shè)置標(biāo)題
window.geometry("200x150")  # 設(shè)置窗口的大小
var1 = tk.StringVar()
l = tk.Label(window, bg="yellow", width=15)
l.pack()
def print_selection():
    l.config(text=f"you have select {var1.get()}")  # 將text重新賦值
rad1 = tk.Radiobutton(window, text="select a", variable=var1, value="A",
                      command=print_selection).pack()  # variable=var1, value="A" 的意思是,將var1賦值成A
rad2 = tk.Radiobutton(window, text="select b", variable=var1, value="B", command=print_selection).pack()
rad3 = tk.Radiobutton(window, text="select c", variable=var1, value="C", command=print_selection).pack()
window.mainloop()  # 顯示窗口

案例五

Scale 尺度

import tkinter as tk
 
window = tk.Tk()  # 實(shí)例化Tk
window.title("muy window")  # 設(shè)置標(biāo)題
window.geometry("200x150")  # 設(shè)置窗口的大小
l = tk.Label(window, bg="yellow", width=15)
l.pack()
def print_selection(v):  # Scale調(diào)用函數(shù),其有自動的傳入值
    l.config(text=f"you have select {v}")
    
s = tk.Scale(window, label="try me", from_=5, to=11, orient=tk.HORIZONTAL,
             length=200, showvalue=0, tickinterval=3, resolution=0.01, command=print_selection)
# label設(shè)置名字,from to 設(shè)置刻度,orient設(shè)置方向,length設(shè)置長度,showvalue展示的值,tickinterval刻度,resolution精度
s.pack()
window.mainloop()  # 顯示窗口

案例六

Checkbutton 勾選項(xiàng)

import tkinter as tk
 
window = tk.Tk()  # 實(shí)例化Tk
window.title("muy window")  # 設(shè)置標(biāo)題
window.geometry("200x150")  # 設(shè)置窗口的大小
l = tk.Label(window, bg="yellow", width=15, text="empty")
l.pack()
def print_selection():  # Scale調(diào)用函數(shù),其有自動的傳入值
    if (var1.get() == 1) & (var2.get() == 0):
        l.config(text="i love python")
    elif (var1.get() == 1) & (var2.get() == 1):
        l.config(text="i love both")
    elif (var1.get() == 0) & (var2.get() == 1):
        l.config(text="i love C++")
    else:
        l.config(text="i don't love either")
var1 = tk.IntVar()
var2 = tk.IntVar()
cl = tk.Checkbutton(window, text="Python", variable=var1, onvalue=1, offvalue=0
                    , command=print_selection)  # 選擇var1的值為1,否則為0
c2 = tk.Checkbutton(window, text="C++", variable=var2, onvalue=1, offvalue=0
                    , command=print_selection)
cl.pack()
c2.pack()
window.mainloop()  # 顯示窗口

案例七

Canvas 畫布

import tkinter as tk
 
window = tk.Tk()  # 實(shí)例化Tk
window.title("muy window")  # 設(shè)置標(biāo)題
window.geometry("200x200")  # 設(shè)置窗口的大小
canvas = tk.Canvas(window, bg="blue", height=100, width=200)
image_file = tk.PhotoImage(file=r"D:\programme\web\web_file\web學(xué)習(xí)\images\image01.jpg")  # 注意,只能導(dǎo)入.gif的圖片
image = canvas.create_image(0, 0, anchor="nw", image=image_file).pack()  # 錨點(diǎn)為左上角,西北方向
x0, y0, x1, y1 = 20, 50, 80, 80
line = canvas.create_line(x0, y0, x1, y1)  # 畫線
oval = canvas.create_oval(x0, y0, x1, y1, fill="red")  # 繪制扇形
arc = canvas.create_arc(x0 + 30, y0 + 30, x1 + 30, x1 + 30, y1 + 30, start=0, extent=180)  # 扇形
rect = canvas.create_rectangle(100, 30, 100 + 20, 30 + 20)  # 繪制正方形
canvas.pack()
def moveit():
    canvas.move(rect, 0, 2)  # 移動正方形,使其往下走兩個單位
a = tk.Button(window, text="move", command=moveit).pack()
window.mainloop()  # 顯示窗口

案例八

Menubar 菜單

import tkinter as tk
 
window = tk.Tk()  # 實(shí)例化Tk
window.title("my window")  # 設(shè)置標(biāo)題
window.geometry("200x200")  # 設(shè)置窗口的大小
count = 0
l = tk.Label(window, text="", bg="yellow")
l.pack()
def do_job():
    global count
    l.config(text=f"do{str(count)}")
    count += 1
"""定義文件選項(xiàng)"""
mb = tk.Menu(window)
file = tk.Menu(mb, tearoff=0)  # 有沒有分隔線
mb.add_cascade(label="File", menu=file)  # 添加一個功能
file.add_command(label="New", command=do_job)  # 每一個選項(xiàng)都是一個功能,命令
file.add_command(label="Open", command=do_job)
file.add_command(label="Save", command=do_job)
sm = tk.Menu(file)  # 在File里面繼續(xù)添加命令
file.add_cascade(label="Submit", menu=sm)
sm.add_command(label="New", command=do_job)
window.config(menu=mb)  # 將菜單添加到window上面
window.mainloop()  # 顯示窗口

案例九

Frame 框架

import tkinter as tk
 
window = tk.Tk()  # 實(shí)例化Tk
window.title("my window")  # 設(shè)置標(biāo)題
window.geometry("200x200")  # 設(shè)置窗口的大小
tk.Label(window, text="on the window").pack()
# 添加框架
fm = tk.Frame(window)
fm.pack()
fm_1 = tk.Frame(fm)
fm_r = tk.Frame(fm)
fm_1.pack(side="left")
fm_r.pack(side="right")
tk.Label(fm_1, text="on the frame_1").pack()
tk.Label(fm_r, text="on the frame_r").pack()
window.mainloop()  # 顯示窗口

案例十

messagebox 彈窗

import tkinter as tk
import tkinter.messagebox
 
window = tk.Tk()  # 實(shí)例化Tk
window.title("my window")  # 設(shè)置標(biāo)題
window.geometry("200x200")  # 設(shè)置窗口的大小
def hit_me():
    tk.messagebox.showinfo(title="hi", message="hit")  # 注意,要導(dǎo)入模塊,還有showwarning, showerror,
"""
tkinter.messagebox.askokcancel('提示', '要執(zhí)行此操作嗎')#確定/取消,返回值true/false
tkinter.messagebox.askquestion('提示', '要執(zhí)行此操作嗎')#是/否,返回值yes/no
tkinter.messagebox.askyesno('提示', '要執(zhí)行此操作嗎')#是/否,返回值true/false
tkinter.messagebox.askretrycancel('提示', '要執(zhí)行此操作嗎')#重試/取消,返回值true/false
文件對話框
import tkinter.filedialog
a = tkinter.filedialog.asksaveasfilename()#返回文件名
print(a)
a = tkinter.filedialog.asksaveasfile()#會創(chuàng)建文件
a = tkinter.filedialog.askopenfilename()#返回文件名
a = tkinter.filedialog.askopenfile()#返回文件流對象
a = tkinter.filedialog.askdirectory()#返回目錄名
a = tkinter.filedialog.askopenfilenames()#可以返回多個文件名
a = tkinter.filedialog.askopenfiles()#多個文件流對象
    
tk.Button(window, text="hit me", command=hit_me).pack()
window.mainloop()  # 顯示窗口

案例十一

pack grid place 放置

import tkinter as tk
 
window = tk.Tk()  # 實(shí)例化Tk
window.title("my window")  # 設(shè)置標(biāo)題
window.geometry("200x200")  # 設(shè)置窗口的大小
# tk.Label(window, text="pack").pack(side="top")
# tk.Label(window, text="pack").pack(side="bottom")
# tk.Label(window, text="pack").pack(side="left")
# tk.Label(window, text="pack").pack(side="right")
# for i in range(4):  # 行
#     for j in range(3):  # 列
#         tk.Label(window, text="grid").grid(row=i, column=j, padx=10, pady=10)  # 以方格的形式放置
tk.Label(window, text="place").place(x=100, y=100, anchor="nw")  # 點(diǎn)的形式
window.mainloop()  # 顯示窗口

登錄窗口

import tkinter as tk
import tkinter.messagebox
 
window = tk.Tk()  # 實(shí)例化Tk
window.title("login")  # 設(shè)置標(biāo)題
window.geometry("450x300")  # 設(shè)置窗口的大小
user_info = [{"name": "admin", "pwd": "1"}, {"name": "user", "pwd": "1"}]  # 存儲賬號信息
# 定義函數(shù)
def login():
    user_info_name = [i["name"] for i in user_info]
    user_info_pwd = [i["pwd"] for i in user_info]
    user_name = var_user_name.get()
    user_pwd = var_pwd.get()
    if user_name in user_info_name:
        if user_pwd == user_info_pwd[user_info_name.index(user_name)]:
            tk.messagebox.showinfo(title="歡迎回來", message="How are you")
        else:
            tk.messagebox.showerror(message="pwd error")
    else:
        answer = tk.messagebox.askquestion(title="warn", message="您還沒有賬號,是否需要注冊?")
        if answer:
            sign()
def sign():
    def store():
        new_pwd1 = new_pwd.get()
        new_user_name1 = new_user_name.get()
        user_info.append({"name": new_user_name1, "pwd": new_pwd1})
        tk.messagebox.showinfo(message="注冊成功")
        window_sign.destroy()  # 關(guān)閉窗口
    def close():
        window_sign.destroy()
    window_sign = tk.Toplevel(window)  # 窗口上的窗口
    window_sign.geometry("350x200")
    window_sign.title("Sign up window")
    # user
    tk.Label(window_sign, text="Name:").place(x=60, y=60)
    new_user_name = tk.StringVar()  # 注意要使用.get()得到值
    new_user_name.set("exampe@python.com")  # 默認(rèn)值
    tk.Entry(window_sign, textvariable=new_user_name).place(x=90, y=60)  # 輸入用戶名
    # pwd
    tk.Label(window_sign, text="Pwd:").place(x=60, y=100)
    new_pwd = tk.StringVar()
    tk.Entry(window_sign, textvariable=new_pwd, show="*").place(x=90, y=100)  # 輸入密碼
    # 確認(rèn)按鈕
    tk.Button(window_sign, text="確認(rèn)", command=store).place(x=100, y=140)
    # 取消按鈕
    tk.Button(window_sign, text="取消", command=close).place(x=170, y=140)
if __name__ == '__main__':
    
    tk.Label(window, text="User Name:").place(x=50, y=50)
    var_user_name = tk.StringVar()  # 注意要使用.get()得到值
    var_user_name.set("exampe@python.com")  # 默認(rèn)值
    tk.Entry(window, textvariable=var_user_name).place(x=130, y=50)  # 輸入用戶名
    tk.Label(window, text="Password:").place(x=50, y=90)
    var_pwd = tk.StringVar()
    tk.Entry(window, textvariable=var_pwd, show="*").place(x=130, y=90)  # 輸入密碼
    # login Button
    tk.Button(window, text="Login", command=login).place(x=130, y=130)  # 登錄按鈕
    # sign Button
    tk.Button(window, text="Sign Up", command=sign).place(x=200, y=130)  # 注冊按鈕
    window.mainloop()  # 顯示窗口

到此這篇關(guān)于Python中的tkinter庫簡單案例詳解的文章就介紹到這了,更多相關(guān)Python中的tkinter庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pygame游戲開發(fā)之太空射擊實(shí)戰(zhàn)盾牌篇

    Pygame游戲開發(fā)之太空射擊實(shí)戰(zhàn)盾牌篇

    相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經(jīng)典好玩的一款了,今天我們來自己動手實(shí)現(xiàn)它,在編寫學(xué)習(xí)中回顧過往展望未來,在本課中,我們將為玩家添加一個盾牌以及一個用于顯示盾牌等級的欄
    2022-08-08
  • 詳解Python發(fā)送郵件實(shí)例

    詳解Python發(fā)送郵件實(shí)例

    這篇文章主要介紹了Python發(fā)送郵件實(shí)例,Python發(fā)送郵件需要smtplib和email兩個模塊,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Python利用PyPDF2庫獲取PDF文件總頁碼實(shí)例

    Python利用PyPDF2庫獲取PDF文件總頁碼實(shí)例

    這篇文章主要介紹了Python利用PyPDF2庫獲取PDF文件總頁碼實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python在字符串中處理html和xml的方法

    Python在字符串中處理html和xml的方法

    這篇文章主要介紹了Python在字符串中處理html和xml的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 基于PyQt5實(shí)現(xiàn)一個無線網(wǎng)連接器

    基于PyQt5實(shí)現(xiàn)一個無線網(wǎng)連接器

    為了方便不會python的朋友也能夠使用,本文將用pyqt5將制作一個帶界面的無線網(wǎng)連接器,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-08-08
  • Python調(diào)用Windows命令打印文件

    Python調(diào)用Windows命令打印文件

    Windows命令行打印文件使用print 命令,具體用法可使用help print查看,下面是使用Python調(diào)用print指令執(zhí)行打印文件功能的代碼,需要的朋友可以參考下
    2020-02-02
  • 在Python的Django框架下使用django-tagging的教程

    在Python的Django框架下使用django-tagging的教程

    這篇文章主要介紹了在Python的Django框架下使用django-tagging的教程,針對網(wǎng)絡(luò)編程中的tag部分功能提供幫助,需要的朋友可以參考下
    2015-05-05
  • Pycharm打開已有項(xiàng)目配置python環(huán)境的方法

    Pycharm打開已有項(xiàng)目配置python環(huán)境的方法

    這篇文章主要介紹了Pycharm打開已有項(xiàng)目配置python環(huán)境的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Python退火算法在高次方程的應(yīng)用

    Python退火算法在高次方程的應(yīng)用

    退火算法就是鋼鐵在淬煉過程中失溫而成穩(wěn)定態(tài)時的過程,熱力學(xué)上溫度(內(nèi)能)越高原子態(tài)越不穩(wěn)定。這篇文章主要介紹了Python退火算法在高次方程的應(yīng)用,需要的朋友可以參考下
    2018-07-07
  • Python繪制散點(diǎn)圖的教程詳解

    Python繪制散點(diǎn)圖的教程詳解

    散點(diǎn)圖是指在回歸分析中,數(shù)據(jù)點(diǎn)在直角坐標(biāo)系平面上的分布圖,散點(diǎn)圖表示因變量隨自變量而變化的大致趨勢,據(jù)此可以選擇合適的函數(shù)對數(shù)據(jù)點(diǎn)進(jìn)行擬合。本文將用Python繪制散點(diǎn)圖,需要的可以參考一下
    2022-03-03

最新評論