
























安装
Tkinter 随 Python 一同发行。验证其是否可用:
终端
python -c "import tkinter; print(tkinter.TkVersion)"
# 应输出:8.6
⚠️ Linux 用户
在 Ubuntu/Debian 上,运行:sudo apt-get install python3-tk
你的第一个窗口
每个 Tkinter 应用程序都遵循相同的三步模式:
tk.Tk()root.mainloop()first_window.py
import tkinter as tk
root = tk.Tk()
root.title("我的第一个应用")
root.geometry("400x300") # 宽度 x 高度
root.mainloop()
完整应用:温度转换器
temp_converter.py
import tkinter as tk
from tkinter import ttk
class TempConverter(tk.Tk):
def __init__(self):
super().__init__()
self.title("温度转换器")
self.resizable(False, False)
self.celsius = tk.StringVar(value="0")
self.fahrenheit = tk.StringVar(value="32")
self._build_ui()
self.celsius.trace_add("write", self._from_c)
self.fahrenheit.trace_add("write", self._from_f)
def _build_ui(self):
f = ttk.Frame(self, padding=20)
f.pack()
ttk.Label(f, text="°C").grid(row=0, column=1)
ttk.Entry(f, textvariable=self.celsius, width=10).grid(row=0, column=0)
ttk.Label(f, text=" = ").grid(row=0, column=2)
ttk.Entry(f, textvariable=self.fahrenheit, width=10).grid(row=0, column=3)
ttk.Label(f, text="°F").grid(row=0, column=4)
def _from_c(self, *_):
try: self.fahrenheit.set(f"{float(self.celsius.get())*9/5+32:.2f}")
except: pass
def _from_f(self, *_):
try: self.celsius.set(f"{(float(self.fahrenheit.get())-32)*5/9:.2f}")
except: pass
TempConverter().mainloop()
💡 基于类的应用
继承 tk.Tk 可以使你的代码组织更清晰,并且在应用规模扩大时保持良好的可扩展性。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。