Python GUI開發工具:Tkinter,快速設計菜單、選框、按鈕、文本框等界面元素

Tkinter是Python中最常用的GUI(Graphical User Interface)工具包之一,它是Python標準庫中自帶的一部分,因此無需額外安裝。Tkinter提供了一系列的介面,幫助開發者快速實現圖形化界面。Tkinter擁有廣泛的應用範圍,可以應用於各種系統平台,它被廣泛應用於開發桌面應用、實現數據可視化等行業。

一、Tkinter基礎

1、創建一個簡單的GUI窗口

import tkinter as tk

root = tk.Tk()  # 創建一個根窗體
root.mainloop()  # 啟動GUI程序循環

2、設置窗口標題和大小

import tkinter as tk

root = tk.Tk()
root.title("我的GUI窗體")  # 設置窗口標題
root.geometry("600x400")  # 設置窗口大小
root.mainloop()

3、在窗口中添加標籤(Label)

import tkinter as tk

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

label = tk.Label(root, text="歡迎使用Tkinter!")
label.pack()  # 將標籤添加到窗口中

root.mainloop()

二、Tkinter中的常用控制項

1、按鈕(Button)

import tkinter as tk

def on_button_click():
    print("按鈕被點擊了!")

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

button = tk.Button(root, text="點擊我", command=on_button_click)
button.pack()

root.mainloop()

2、文本框(Entry)

import tkinter as tk

def on_button_click():
    label.config(text="你好," + entry.get())

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

label = tk.Label(root, text="請輸入你的名字:")
label.pack()

entry = tk.Entry(root)
entry.pack()

button = tk.Button(root, text="確定", command=on_button_click)
button.pack()

root.mainloop()

3、選擇框(Checkbutton)

import tkinter as tk

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

var1 = tk.BooleanVar()
check1 = tk.Checkbutton(root, text="選擇1", variable=var1)
check1.pack()

var2 = tk.BooleanVar()
check2 = tk.Checkbutton(root, text="選擇2", variable=var2)
check2.pack()

root.mainloop()

4、滑動條(Scale)

import tkinter as tk

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

var = tk.DoubleVar()
scale = tk.Scale(root, variable=var, from_=0, to=100)
scale.pack()

root.mainloop()

5、菜單(Menu)

import tkinter as tk

def on_menu_click():
    label.config(text="你選擇了" + var.get())

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

menubar = tk.Menu(root)  # 創建菜單欄

var = tk.StringVar()
var.set("Python")

menu1 = tk.Menu(menubar, tearoff=0)  # 創建一級菜單
menu1.add_radiobutton(label="Python", variable=var, command=on_menu_click)
menu1.add_radiobutton(label="Java", variable=var, command=on_menu_click)
menu1.add_radiobutton(label="C++", variable=var, command=on_menu_click)

menubar.add_cascade(label="編程語言", menu=menu1)  # 添加一級菜單

root.config(menu=menubar)  # 將菜單欄添加到窗體中

label = tk.Label(root, text="請選擇一種編程語言")
label.pack()

root.mainloop()

三、Tkinter中的布局管理器

1、Pack布局管理器

import tkinter as tk

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

label1 = tk.Label(root, text="標籤1", bg="red")
label1.pack(side=tk.LEFT)

label2 = tk.Label(root, text="標籤2", bg="green")
label2.pack(side=tk.LEFT)

label3 = tk.Label(root, text="標籤3", bg="blue")
label3.pack(side=tk.LEFT)

root.mainloop()

2、Grid布局管理器

import tkinter as tk

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

label1 = tk.Label(root, text="標籤1", bg="red")
label1.grid(row=0, column=0)

label2 = tk.Label(root, text="標籤2", bg="green")
label2.grid(row=0, column=1)

label3 = tk.Label(root, text="標籤3", bg="blue")
label3.grid(row=1, columnspan=2)

root.mainloop()

3、Place布局管理器

import tkinter as tk

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

label = tk.Label(root, text="標籤", bg="red")
label.place(x=50, y=50)

root.mainloop()

四、Tkinter中的事件處理

1、按鈕點擊事件

import tkinter as tk

def on_button_click():
    label.config(text="按鈕被點擊了!")

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

button = tk.Button(root, text="點擊我", command=on_button_click)
button.pack()

label = tk.Label(root, text="請點擊按鈕")
label.pack()

root.mainloop()

2、鍵盤事件

import tkinter as tk

def on_key(event):
    print("按下了" + event.char)

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

entry = tk.Entry(root)
entry.bind("", on_key)  # 綁定鍵盤事件
entry.pack()

root.mainloop()

3、滑鼠事件

import tkinter as tk

def on_mouse_click(event):
    label.config(text="滑鼠點擊了坐標為{}的位置".format(event.x, event.y))

def on_mouse_move(event):
    label.config(text="滑鼠移動到坐標為{}的位置".format(event.x, event.y))

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

label = tk.Label(root, text="請點擊滑鼠")
label.pack()

root.bind("", on_mouse_click)  # 綁定滑鼠點擊事件
root.bind("", on_mouse_move)  # 綁定滑鼠移動事件

root.mainloop()

五、Tkinter中的畫布(Canvas)

1、繪製直線

import tkinter as tk

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

canvas = tk.Canvas(root, width=300, height=200)
canvas.pack()

canvas.create_line(0, 0, 300, 200, fill="red")

root.mainloop()

2、繪製矩形

import tkinter as tk

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

canvas = tk.Canvas(root, width=300, height=200)
canvas.pack()

canvas.create_rectangle(50, 50, 250, 150, fill="green")

root.mainloop()

3、繪製圓形

import tkinter as tk

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

canvas = tk.Canvas(root, width=300, height=200)
canvas.pack()

canvas.create_oval(50, 50, 250, 150, fill="blue")

root.mainloop()

六、Tkinter中的圖片處理

1、顯示圖片

import tkinter as tk
from PIL import Image, ImageTk

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

image = Image.open("test.png")
photo = ImageTk.PhotoImage(image)

label = tk.Label(root, image=photo)
label.pack()

root.mainloop()

2、添加按鈕以改變圖片

import tkinter as tk
from PIL import Image, ImageTk

root = tk.Tk()
root.title("我的GUI窗體")
root.geometry("600x400")

image1 = Image.open("test1.png")
photo1 = ImageTk.PhotoImage(image1)

image2 = Image.open("test2.png")
photo2 = ImageTk.PhotoImage(image2)

label = tk.Label(root, image=photo1)
label.pack()

def on_button_click():
    label.config(image=photo2)

button = tk.Button(root, text="改變圖片", command=on_button_click)
button.pack()

root.mainloop()

七、Tkinter應用實例

一個簡單的計算器程序

import tkinter as tk

root = tk.Tk()
root.title("計算器")
root.geometry("300x200")

var1 = tk.StringVar()
entry1 = tk.Entry(root, textvariable=var1, font=("Arial", 14))
entry1.pack()

var2 = tk.StringVar()
entry2 = tk.Entry(root, textvariable=var2, font=("Arial", 14))
entry2.pack()

var3 = tk.StringVar()
label = tk.Label(root, textvariable=var3, font=("Arial", 14))
label.pack()

def on_button_click():
    num1 = float(var1.get())
    num2 = float(var2.get())
    result = num1 + num2
    var3.set("結果為:" + str(result))

button = tk.Button(root, text="相加", command=on_button_click, font=("Arial", 14))
button.pack()

root.mainloop()

八、總結

Tkinter是Python中最常用的GUI工具包之一,它提供了豐富的控制項和布局管理器,幫助開發人員快速實現圖形化界面。同時,Tkinter還提供了很多事件處理和畫布等功能,可以滿足各種應用場景的需求。本文介紹了Tkinter的基礎知識、常用控制項和布局管理器、事件處理、畫布以及圖片處理等方面的內容,並給出了簡單的應用實例。開發者可以根據需求,了解更多的Tkinter介面,並深入探究其應用。

原創文章,作者:JYAJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144447.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JYAJ的頭像JYAJ
上一篇 2024-10-25 13:52
下一篇 2024-10-25 13:52

相關推薦

  • Mac自帶Python:你不知道的全能開發工具

    你知道嗎?你的Mac自帶Python!而且它能夠支持開發多種應用程序、執行的任務也很多種多樣。讓我們一起來探索一下Mac自帶Python的神奇功能吧! 一、快速入門 要馬上開始使用…

    編程 2025-04-29
  • Access執行按鈕的實現方法及應用場景

    本文將詳細介紹Access執行按鈕的實現方法及其在實際應用場景中的使用方法。 一、創建Access執行按鈕的方法 在Access中,創建執行按鈕的方法非常簡單。只需要按照以下步驟進…

    編程 2025-04-27
  • 帶滾動條的文本框

    本文將從多個方面對帶滾動條的文本框進行詳細的闡述,包括實現方式、功能特點、優點及注意事項。 一、實現方式 帶滾動條的文本框可以通過使用HTML和CSS實現,具體代碼如下: <…

    編程 2025-04-27
  • python運行按鈕在哪

    Python運行按鈕指的是在集成開發環境(IDE)中開發者用來運行代碼的按鈕,請看下面的代碼示例: print(“Hello, World!”) 如果這段代碼保存為名為hello_…

    編程 2025-04-27
  • Anaconda Python – 多面手的全能編程開發工具

    Anaconda Python是一個全能的編程開發工具,它集成了多種Python數據科學和機器學習庫以及其他工具。在這篇文章中,我們將從多個方面對Anaconda Python進行…

    編程 2025-04-27
  • Euxqxejs:一款全能編程開發工具

    對於編程開發工程師來說,一款強大的開發工具是必不可少的。Euxqxejs就是一款專為編程開發工程師打造的全能開發工具。本文將從多個方面來詳細介紹Euxqxejs的特點和優勢。 一、…

    編程 2025-04-27
  • BNFGD:一個全能的編程開發工具

    BNFGD是一個全能的編程開發工具,可以幫助你快速開發軟體項目,在不同的應用場景中發揮著不同的作用,下面將從多個方面進行詳細闡述。 一、BNFGD的基本功能 在很多軟體項目中,我們…

    編程 2025-04-27
  • 如何在LinearLayout中使按鈕居中

    在LinearLayout布局中,如果想要讓按鈕居中,那麼可以通過以下幾種方法實現。 一、gravity屬性 在LinearLayout中,可以使用gravity屬性將其子控制項相對…

    編程 2025-04-27
  • 小程序下拉菜單詳解

    一、下拉菜單的基本用法 小程序下拉菜單是一個常用的交互組件,用於在需要選取內容的時候,展示選項並讓用戶進行選擇。下面是下拉菜單的基本用法示例代碼: <view class=”…

    編程 2025-04-24
  • Python內置的集成開發工具

    Python是一種高級編程語言,廣泛應用於Web開發、數據分析、人工智慧等領域。Python內置了許多集成開發工具,對於開發人員來說非常方便。本文將從多個方面對Python內置的集…

    編程 2025-04-23

發表回復

登錄後才能評論