PythonGUI編程:Tkinter入門

tkinter是python自帶的gui庫,適合入門。創建窗口需導入tkinter模塊并實例化tk()對象,最后調用mainloop()啟動事件監聽。添加控件如按鈕、輸入框等,通過pack()/grid()/place()布局,注意不可混用布局方式。事件綁定可通過command參數或bind()方法實現。布局時易忽略混用不同布局導致控件不顯示,可用update_idletasks()配合屏幕尺寸計算讓窗口居中顯示。

PythonGUI編程:Tkinter入門

python做界面,Tkinter是最簡單的入門選擇。它是Python自帶的GUI庫,不需要額外安裝,寫一些小工具或者練手項目特別合適。

PythonGUI編程:Tkinter入門

怎么創建一個窗口?

用Tkinter寫界面,第一步就是創建主窗口。這一步其實很簡單,只需要導入tkinter模塊,然后實例化一個Tk()對象就可以了。

PythonGUI編程:Tkinter入門

import tkinter as tk  window = tk.Tk() window.mainloop()

這段代碼運行之后就會彈出一個空白窗口。別看它簡單,但這是所有Tkinter程序的基礎。注意最后一定要調用mainloop(),否則窗口不會顯示。這就像給程序裝了個“事件監聽器”,讓窗口能響應用戶的操作。

立即學習Python免費學習筆記(深入)”;

控件怎么加進去?

窗口有了,下一步就是往里面加按鈕、輸入框這些控件。Tkinter提供了很多基本控件,比如Label(標簽)、Button(按鈕)、Entry(輸入框)等等。

PythonGUI編程:Tkinter入門

添加控件的步驟一般是:

  • 創建控件對象
  • 把它放到窗口里
  • 設置布局方式(pack/grid/place)

舉個例子,加一個按鈕:

button = tk.Button(window, text="點我") button.pack()

這樣就在窗口中添加了一個按鈕,并且用了pack()自動排版。如果你要更精確地控制位置,可以用place(x=50, y=50)指定坐標,或者用grid(row=0, column=0)按行列布局。

不同布局方式不能混用,選一種就堅持到底。

事件綁定怎么做?

按鈕加好了,當然希望它有點反應。這時候就需要綁定事件。最常見的是點擊按鈕觸發某個函數。

def on_click():     print("你點了我")  button = tk.Button(window, text="點我", command=on_click) button.pack()

這里的關鍵是command參數,它指定了點擊按鈕時要執行的函數。除了按鈕,其他控件也有類似機制,比如輸入框內容變化、選擇菜單項等。

有些事件需要綁定到特定動作上,比如鼠標移動、鍵盤按鍵,這時候要用bind()方法:

window.bind("<Key>", lambda event: print("你按了鍵"))

布局容易忽略什么?

很多人剛開始寫Tkinter程序時,會發現控件排得亂七八糟,或者看不見、重疊了。其實主要是布局沒搞清楚。

  • pack()適合從上往下或從左往右排列控件
  • grid()適合表格式布局,行和列清晰
  • place()適合精確控制位置

一個常見的坑是:同一個父容器里混用不同的布局方式,結果控件顯示不出來。比如你給一個控件用了pack(),又給另一個控件用了grid(),那很可能只有第一個生效,第二個不顯示。

還有個小技巧:想讓窗口居中打開,可以自己算一下屏幕尺寸,設置窗口的位置:

window.update_idletasks()  # 刷新界面信息 width = window.winfo_width() height = window.winfo_height() screen_width = window.winfo_screenwidth() screen_height = window.winfo_screenheight() x = (screen_width - width) // 2 y = (screen_height - height) // 2 window.geometry(f"+{x}+{y}")

這樣就不會一打開窗口就跑到屏幕角落去了。

基本上就這些。Tkinter雖然功能不算強大,但對新手友好,也不依賴外部庫,用來寫點小工具挺合適的。

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享