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

Python中tkinter開發(fā)的常用29種功能用法總結(jié)

 更新時(shí)間:2023年05月29日 16:43:20   作者:輕松學(xué)Python  
tkinter(Tk?interface)是Python的標(biāo)準(zhǔn)GUl庫,支持跨平臺(tái)的GUl程序開發(fā),本文為大家整理了tkinter開發(fā)時(shí)常用的29種功能用法,希望對(duì)大家有所幫助

在Python軟件開發(fā)中,tkinter中command功能的作用是為按鈕、菜單等組件綁定回調(diào)函數(shù),用戶操作該組件時(shí)會(huì)觸發(fā)相應(yīng)的函數(shù)執(zhí)行。

本文涵蓋了各種組件和功能:

1、為Button組件(按鈕)綁定回調(diào)函數(shù)

import tkinter as tk
def say_hello():
    print("Hello World!")
root = tk.Tk()
button = tk.Button(root, text="點(diǎn)我", command=say_hello)
button.pack()
root.mainloop()

2、為Checkbutton組件(多選擇鈕)綁定回調(diào)函數(shù)

import tkinter as tk
def show_selection():
    print("Selection is:", var.get())
root = tk.Tk()
var = tk.BooleanVar()
checkbutton = tk.Checkbutton(root, text="Select me", variable=var, command=show_selection)
checkbutton.pack()
root.mainloop()

3、為Radiobutton組件(單選擇鈕)綁定回調(diào)函數(shù)

import tkinter as tk
def show_selection():
    print("Selection is:", var.get())
root = tk.Tk()
var = tk.StringVar()
radiobutton1 = tk.Radiobutton(root, text="Option 1", variable=var, value="Option 1", command=show_selection)
radiobutton2 = tk.Radiobutton(root, text="Option 2", variable=var, value="Option 2", command=show_selection)
radiobutton1.pack()
radiobutton2.pack()
root.mainloop()

4、為L(zhǎng)istbox組件(列表組件)綁定回調(diào)函數(shù)

import tkinter as tk
def show_selection(event):
    selection = event.widget.curselection()
    print("Selection is:", event.widget.get(selection))
root = tk.Tk()
listbox = tk.Listbox(root)
listbox.insert("end", "Option 1")
listbox.insert("end", "Option 2")
listbox.bind("<<ListboxSelect>>", show_selection)
listbox.pack()
root.mainloop()

5、為Spinbox組件(條框)綁定回調(diào)函數(shù)

import tkinter as tk
# Python學(xué)習(xí)交流扣裙:708525271
def show_selection():
    print("Selection is:", spinbox.get())
root = tk.Tk()
spinbox = tk.Spinbox(root, values=(1, 2, 3,4,5), command=show_selection)
spinbox.pack()
root.mainloop()

運(yùn)行后,選擇不同的參數(shù),回傳到了spinbox組件

6、為Scale組件(滑條)綁定回調(diào)函數(shù)

import tkinter as tk
def show_selection(value):
    print("Selection is:", value)
root = tk.Tk()
scale = tk.Scale(root, from_=0, to=100, command=show_selection)
scale.pack()
root.mainloop()

7、為Scrollbar組件(滾動(dòng)條)綁定回調(diào)函數(shù)

import tkinter as tk
def scroll(event):
    scrollbar.set(event.widget.get())
root = tk.Tk()
scrollbar = tk.Scrollbar(root, orient="vertical")
scrollbar.pack(side="right", fill="y")
listbox = tk.Listbox(root, yscrollcommand=scrollbar.set)
for i in range(100):
    listbox.insert("end", "Option " + str(i))
scrollbar.config(command=listbox.yview)
listbox.bind("<MouseWheel>", scroll)
listbox.pack()
root.mainloop()

8、為Canvas組件(畫布)綁定回調(diào)函數(shù)

import tkinter as tk
def draw_line(event):
    canvas.create_line(0, 0, event.x, event.y)
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
canvas.bind("<Button-1>", draw_line)
canvas.pack()
root.mainloop()

9、為Text組件(文本框)綁定回調(diào)函數(shù)

import tkinter as tk
def count_characters(event):
    text = event.widget.get("1.0", "end")
    count = len(text.replace("\n", ""))
    print("Character count:", count)
root = tk.Tk()
text = tk.Text(root)
text.bind("<KeyRelease>", count_characters)
text.pack()
root.mainloop()

10、為Menu組件(菜單)綁定回調(diào)函數(shù)

import tkinter as tk
def say_hello():
    print("Hello World!")
root = tk.Tk()
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="New")
filemenu.add_command(label="Open")
filemenu.add_command(label="Save")
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
editmenu = tk.Menu(menubar, tearoff=0)
editmenu.add_command(label="Copy")
editmenu.add_command(label="Cut")
editmenu.add_command(label="Paste")
editmenu.add_command(label="顯示問候",command=say_hello)
helpmenu = tk.Menu(menubar, tearoff=0)
helpmenu.add_command(label="About")
menubar.add_cascade(label="File", menu=filemenu)
menubar.add_cascade(label="Edit", menu=editmenu)
menubar.add_cascade(label="Help", menu=helpmenu)
root.config(menu=menubar)
root.mainloop()

11、為Canvas(畫布)中的圖形對(duì)象綁定回調(diào)函數(shù)

import tkinter as tk
def move_object(event):
    canvas.move(rectangle, 10, 10)
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue")
canvas.tag_bind(rectangle, "<Button-1>", move_object)
canvas.pack()
root.mainloop()

當(dāng)點(diǎn)擊藍(lán)色方塊時(shí),藍(lán)色方塊會(huì)移動(dòng)

12、為Frame組件綁定回調(diào)函數(shù)

import tkinter as tk
def say_hello():
    print("Hello World!")
root = tk.Tk()
frame = tk.Frame(root)
button = tk.Button(frame, text="Click me", command=say_hello)
button.pack()
frame.pack()
root.mainloop()

13、為L(zhǎng)abel組件(標(biāo)簽)綁定回調(diào)函數(shù)

import tkinter as tk
def say_hello(event):
    label.config(text="Hello World!")
root = tk.Tk()
label = tk.Label(root, text="Click me")
label.pack()
label.bind("<Button-1>", say_hello)
root.mainloop()

14、為Toplevel組件(頂部操作桿)綁定回調(diào)函數(shù)

import tkinter as tk
def create_window():
    window = tk.Toplevel(root)
    label = tk.Label(window, text="New Window")
    label.pack()
root = tk.Tk()
button = tk.Button(root, text="Create window", command=create_window)
button.pack()
root.mainloop()

15、為Canvas中(畫布)的圖形對(duì)象設(shè)置鼠標(biāo)樣式

import tkinter as tk
def set_cursor(event):
    canvas.config(cursor="crosshair")
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
canvas.bind("<Motion>", set_cursor)
canvas.pack()
root.mainloop()

16、為Entry組件綁定回調(diào)函數(shù)

import tkinter as tk
#   Python學(xué)習(xí)交流裙:708525271
def show_input(event):
    print("Input is:", entry.get())
root = tk.Tk()
entry = tk.Entry(root)
entry.bind("<Return>", show_input)
entry.pack()
root.mainloop()

17、為Text組件設(shè)置快捷鍵

import tkinter as tk
def copy(event):
    text.event_generate("<Control-c>")
root = tk.Tk()
text = tk.Text(root)
text.bind("<Control-c>", lambda e: print("Copied!"))
button = tk.Button(root, text="Copy", command=lambda: copy(None))
button.pack()
text.pack()

18、為Canvas中的圖形對(duì)象添加標(biāo)簽

import tkinter as tk
def show_label(event):
    item = canvas.find_withtag("current")
    canvas.itemconfig(item, tags=("item", "selected"))
    canvas.itemconfig("label", text="Selected item: " + str(item[0]))
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue", tags=("item"))
label = canvas.create_text(150, 20, text="No item selected", tags=("label"))
canvas.bind("<Button-1>", show_label)
canvas.pack()
root.mainloop()

驗(yàn)證程序能夠運(yùn)行,且可以顯示在沒有選擇前、選擇后。

19、為Canvas中的圖形對(duì)象設(shè)置動(dòng)畫效果

import tkinter as tk
def animate():
    canvas.move(rectangle, 2, 2)
    canvas.after(10, animate)
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue")
animate()
canvas.pack()
root.mainloop()

經(jīng)過驗(yàn)證,程序可以運(yùn)行,藍(lán)色的圖形會(huì)運(yùn)動(dòng)到右下角。

20、為Menu組件設(shè)置圖片

import tkinter as tk
root = tk.Tk()
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="New", image=tk.PhotoImage(file="D:\\test\\test\\icons\\new.png"))
filemenu.add_command(label="Open", image=tk.PhotoImage(file="D:\\test\\test\\icons\\open.png"))
filemenu.add_command(label="Save", image=tk.PhotoImage(file="D:\\test\\test\\icons\\save.png"))
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
editmenu = tk.Menu(menubar, tearoff=0)
editmenu.add_command(label="Copy", image=tk.PhotoImage(file="D:\\test\\test\\icons\\copy.png"))
editmenu.add_command(label="Cut", image=tk.PhotoImage(file="D:\\test\\test\\icons\\cut.png"))
editmenu.add_command(label="Paste", image=tk.PhotoImage(file="D:\\test\\test\\icons\\paste.png"))
helpmenu = tk.Menu(menubar, tearoff=0)
helpmenu.add_command(label="About", image=tk.PhotoImage(file="D:\\test\\test\\icons\\about.png"))
menubar.add_cascade(label="File", menu=filemenu)
menubar.add_cascade(label="Edit", menu=editmenu)
menubar.add_cascade(label="Help", menu=helpmenu)
root.config(menu=menubar)
root.mainloop()

程序測(cè)試好像不成功,沒有找到原因

21、為Canvas中的圖形對(duì)象設(shè)置背景圖片

import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
canvas.config(bg="white")
photo = tk.PhotoImage(file="icons/background.png")
canvas.create_image(0, 0, image=photo, anchor="nw")
canvas.pack()
root.mainloop()

22、為Canvas中的圖形對(duì)象設(shè)置鼠標(biāo)拖動(dòng)效果

import tkinter as tk
def start_drag(event):
    global drag_pos
    drag_pos = (event.x, event.y)
def drag(event):
    global drag_pos
    delta_x = event.x - drag_pos[0]
    delta_y = event.y - drag_pos[1]
    canvas.move(rectangle, delta_x, delta_y)
    drag_pos = (event.x, event.y)
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue")
canvas.tag_bind(rectangle, "<Button-1>", start_drag)
canvas.tag_bind(rectangle, "<B1-Motion>", drag)
canvas.pack()
root.mainloop()

23、為Canvas中的圖形對(duì)象設(shè)置點(diǎn)擊特效

import tkinter as tk
def toggle_color(event):
    canvas.itemconfig(event.widget, fill="green" if event.widget in selected else "blue")
    if event.widget in selected:
        selected.remove(event.widget)
    else:
        selected.append(event.widget)
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
rectangles = []
selected = []
for i in range(3):
    for j in range(3):
        rectangle = canvas.create_rectangle(i*100, j*100, i*100+50, j*100+50, fill="blue")
        canvas.tag_bind(rectangle, "<Button-1>", toggle_color)
        rectangles.append(rectangle)
canvas.pack()
root.mainloop()

24、為Canvas中的圖形對(duì)象設(shè)置縮放效果

import tkinter as tk
def zoom(delta):
    scale = 1.1 if delta > 0 else 0.9
    canvas.scale("all", 0, 0, scale, scale)
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue")
canvas.bind("<MouseWheel>", lambda e: zoom(e.delta))
canvas.pack()
root.mainloop()

25、為Canvas中的圖形對(duì)象設(shè)置旋轉(zhuǎn)效果

import tkinter as tk
import math
def rotate(delta):
    angle = math.radians(delta)
    rx, ry = canvas.coords(rectangle)[:2]
    cos = math.cos(angle)
    sin = math.sin(angle)
    x, y = canvas.coords(rectangle)[2:4]
    tx = cos * (x-rx) - sin * (y-ry) + rx
    ty = sin * (x-rx) + cos * (y-ry) + ry
    canvas.coords(rectangle, rx, ry, tx, ty)
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue")
canvas.bind("<MouseWheel>", lambda e: rotate(e.delta))
canvas.pack()
root.mainloop()

26、為Canvas中的圖形對(duì)象設(shè)置反色效果

import tkinter as tk
def toggle_color(event):
    pixels = canvas.itemcget(event.widget, "fill")
    if pixels == "blue":
        canvas.itemconfig(event.widget, fill="yellow")
    else:
        canvas.itemconfig(event.widget, fill="blue")
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
rectangles = []
for i in range(3):
    for j in range(3):
        rectangle = canvas.create_rectangle(i*100, j*100, i*100+50, j*100+50, fill="blue")
        canvas.tag_bind(rectangle, "<Button-1>", toggle_color)
        rectangles.append(rectangle)
canvas.pack()
root.mainloop()

27、為Canvas中的圖形對(duì)象設(shè)置閃爍效果

import tkinter as tk
def start_blink(event):
    canvas.itemconfig(event.widget, fill="yellow")
    canvas.after(200, lambda: canvas.itemconfig(event.widget, fill="blue"))
    canvas.after(400, lambda: canvas.itemconfig(event.widget, fill="yellow"))
    canvas.after(600, lambda: canvas.itemconfig(event.widget, fill="blue"))
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
rectangles = []
for i in range(3):
    for j in range(3):
        rectangle = canvas.create_rectangle(i*100, j*100, i*100+50, j*100+50, fill="blue")
        canvas.tag_bind(rectangle, "<Button-1>", start_blink)
        rectangles.append(rectangle)
canvas.pack()
root.mainloop()

28、為Menu組件設(shè)置子菜單

#    為Menu組件設(shè)置子菜單
import tkinter as tk
root = tk.Tk()
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="New")
filemenu.add_command(label="Open")
filemenu.add_command(label="Save")
subfilemenu = tk.Menu(filemenu, tearoff=0)
subfilemenu.add_command(label="Option 1")
subfilemenu.add_command(label="Option 2")
filemenu.add_cascade(label="More", menu=subfilemenu)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
root.config(menu=menubar)
root.mainloop()

29、為Canvas中的圖形對(duì)象設(shè)置尺寸調(diào)整效果

#    為Canvas中的圖形對(duì)象設(shè)置尺寸調(diào)整效果
import tkinter as tk
def start_resize(event):
    global resize_pos
    resize_pos = (event.x, event.y)
def resize(event):
    global resize_pos
    delta_x = event.x - resize_pos[0]
    delta_y = event.y - resize_pos[1]
    x, y, w, h = canvas.coords(rectangle)
    if event.widget == resize_left:
        canvas.coords(rectangle, x+delta_x, y, w-delta_x, h)
    elif event.widget == resize_top:
        canvas.coords(rectangle, x, y+delta_y, w, h-delta_y)
    elif event.widget == resize_right:
        canvas.coords(rectangle, x, y, w+delta_x, h)
    elif event.widget == resize_bottom:
        canvas.coords(rectangle, x, y, w, h+delta_y)
    resize_pos = (event.x, event.y)
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
rectangle = canvas.create_rectangle(50, 50, 100, 100, fill="blue")
resize_left = tk.Canvas(canvas, width=10, height=10, bd=-2, bg="white", cursor="sb_h_double_arrow")
resize_top = tk.Canvas(canvas, width=10, height=10, bd=-2, bg="white", cursor="sb_v_double_arrow")
resize_right = tk.Canvas(canvas, width=10, height=10, bd=-2, bg="white", cursor="sb_h_double_arrow")
resize_bottom = tk.Canvas(canvas, width=10, height=10, bd=-2, bg="white", cursor="sb_v_double_arrow")
resize_left.place(x=50-5, y=75-5)
resize_top.place(x=75-5, y=50-5)
resize_right.place(x=100-5, y=75-5)
resize_bottom.place(x=75-5, y=100-5)
resize_left.bind("<Button-1>", start_resize)
resize_top.bind("<Button-1>", start_resize)
resize_right.bind("<Button-1>", start_resize)
resize_bottom.bind("<Button-1>", start_resize)
resize_left.bind("<B1-Motion>", resize)
resize_top.bind("<B1-Motion>", resize)
resize_right.bind("<B1-Motion>", resize)
resize_bottom.bind("<B1-Motion>", resize)
canvas.pack()
root.mainloop()

以上就是Python中tkinter開發(fā)的常用29種功能用法總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Python tkinter的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python實(shí)現(xiàn)動(dòng)態(tài)柱狀圖的繪制

    Python實(shí)現(xiàn)動(dòng)態(tài)柱狀圖的繪制

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)動(dòng)態(tài)柱狀圖的繪制的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)與借鑒價(jià)值,需要的可以參考一下
    2022-12-12
  • Python編程argparse入門淺析

    Python編程argparse入門淺析

    這篇文章主要介紹了Python編程argparse入門淺析,分享了相關(guān)代碼,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Python中的引用知識(shí)點(diǎn)總結(jié)

    Python中的引用知識(shí)點(diǎn)總結(jié)

    在本文里我們給大家整理了關(guān)于Python中的引用知識(shí)點(diǎn)以及相關(guān)代碼總結(jié),需要的朋友們跟著學(xué)習(xí)下。
    2019-05-05
  • python 實(shí)現(xiàn)批量xls文件轉(zhuǎn)csv文件的方法

    python 實(shí)現(xiàn)批量xls文件轉(zhuǎn)csv文件的方法

    今天小編就為大家分享一篇python 實(shí)現(xiàn)批量xls文件轉(zhuǎn)csv文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python中使用aiohttp模擬服務(wù)器出現(xiàn)錯(cuò)誤問題及解決方法

    Python中使用aiohttp模擬服務(wù)器出現(xiàn)錯(cuò)誤問題及解決方法

    這篇文章主要介紹了Python中使用aiohttp模擬服務(wù)器出現(xiàn)錯(cuò)誤,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • python Django 反向訪問器的外鍵沖突解決

    python Django 反向訪問器的外鍵沖突解決

    這篇文章主要介紹了python Django 反向訪問器的外鍵沖突解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python 使用type來定義類的實(shí)現(xiàn)

    Python 使用type來定義類的實(shí)現(xiàn)

    今天小編就為大家分享一篇Python 使用type來定義類的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 運(yùn)行django項(xiàng)目指定IP和端口的方法

    運(yùn)行django項(xiàng)目指定IP和端口的方法

    今天小編就為大家分享一篇運(yùn)行django項(xiàng)目指定IP和端口的方法。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • PyCharm提示No Python Interpreter的正確解決辦法

    PyCharm提示No Python Interpreter的正確解決辦法

    剛學(xué)Python時(shí),拿到一個(gè)Python項(xiàng)目,想用pycharm打開運(yùn)行卻報(bào)錯(cuò)了,這篇文章主要給大家介紹了關(guān)于PyCharm提示No Python Interpreter的正確解決辦法,需要的朋友可以參考下
    2023-10-10
  • Python with語句用法原理詳解

    Python with語句用法原理詳解

    這篇文章主要介紹了Python with語句用法原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論