import tkinter as tk
window = tk.Tk()
window.mainloop()رابط گرافیکی (tkinter)
ورود به دنیای گرافیک
ایجاد Loop برای بدنه
در این بخش با ساختن یک پنجره ساده وارد دنیای رابط گرافیکی میشویم. متد mainloop() باعث میشود پنجره باز بماند و منتظر تعامل کاربر بماند.
عنوان
در این مرحله برای پنجره یک عنوان مشخص میکنیم. متد title() متن نمایش دادهشده در نوار بالای پنجره را تنظیم میکند.
import tkinter as tk
window = tk.Tk()
window.title("Hello World!")
window.mainloop()تغییر سایز پنجره
در این بخش اندازه اولیه پنجره را مشخص میکنیم. متد geometry() عرض و ارتفاع پنجره را بر حسب پیکسل تعیین میکند.
import tkinter as tk
window = tk.Tk()
window.title("Hello World!")
window.geometry("480x360") # width x height
# window.minsize(width=400, height=300)
# window.maxsize(width=640, height=450)
# window.resizable(width=False, height=False)
window.mainloop()ابزارهای اصلی (Widgets)
برچسب
برچسب یا Label برای نمایش متن در پنجره استفاده میشود. میتوان ظاهر آن مثل فونت، رنگ پسزمینه و رنگ متن را تغییر داد.
import tkinter as tk
window = tk.Tk()
window.title("Hello World!")
window.geometry("480x360")
tk.Label(window, text="Hello Mohsen").pack()
tk.Label(
window,
text="How are you?",
font=("Roboto", 18, "Bold"), # family size face
bg="blue", # background
fg="white", # forground
).pack(pady=10) # padding in y axis
window.mainloop()دکمه
دکمه یا Button برای انجام یک عمل هنگام کلیک کاربر استفاده میشود. با استفاده از پارامتر command میتوان یک تابع را به دکمه متصل کرد.
import tkinter as tk
def btn_print():
# print("Hello World!")
lbl.configure(text="Hello World!")
window = tk.Tk()
window.title("Hello World!")
window.geometry("480x360")
btn = tk.Button(window)
btn.configure(text="Say hello", command=btn_print)
btn.pack(pady=10)
lbl = Label(window, text="")
lbl.pack(pady=10)
window.mainloop()ورودی
ویجت Entry برای دریافت ورودی از کاربر استفاده میشود. با متد get() میتوان مقدار واردشده را خواند و بر اساس آن تصمیمگیری کرد.
import tkinter as tk
def btn_print():
name = ntr.get()
if name == "":
result.configure(
text="Please Enter your name!",
fg="red"
)
else:
result.configure(
text=f"Hello {name}!",
fg="blue"
)
window = tk.Tk()
window.title("Hello World!")
window.geometry("480x360")
lbl = tk.Label(
window,
text="Enter your name:",
font=("Roboto", 10)
)
lbl.pack(pady=10)
ntr = tk.Entry(window)
ntr.pack(pady=5)
btn = tk.Button(window)
btn.configure(text="Say hello", command=btn_print)
btn.pack()
result = tk.Label(
window,
text="",
font=("Roboto", 12, "bold")
)
result.pack(pady=10)
window.mainloop()