پنجره اصلی (Top-Level Window)
پنجره اصلی (Top-Level Window)، همان پنجرهای است که بقیه عناصر بر روی آن قرار میگیرند. این پنجره معادل همان فرم در ویندوز فرم سی شارپ میباشد و برای ایجاد آن از کلاس ()Tk استفاده میشود:
import tkinter
window = tkinter.Tk()
window.mainloop()
با اجرای برنامه بالا، پنجره اصلی به صورت زیر نمایش داده میشود:
برنامه میتواند هر تعداد پنجره Top Level داشته باشد. این عنصر دارای خاصیتهایی است که میتوانند به صورت زوجهای کلید-مقدار که با ویرگول از هم جدا میشوند، مورد استفاده قرار گیرند. لیست خاصیتهای این عنصر در جدول زیر آمده است:
تنظیمات | شرح |
bg | رنگ پس زمینه پنجره را مشخص میکند. |
bd | اندازه خط کناری را بر اساس پیکسل مشخص میکند. پیش فرض 0 است. |
cursor | شکل نشانگر ماوس را زمانی که درون پنجره باشد، مشخص میکند. |
font | فونت پیش فرض برای متنهایی که درون این عنصر قرار میگیرند. |
fg | رنگ استفاده شده برای متن و bitmap درون این عنصر را مشخص میکند. |
height | ارتفاع پنجره را مشخص میکند. |
relief | در حالت عادی این نوع پنجره دارای حاشیه سه بعدی در اطراف خود نیست. برای بدست آوردن حاشیه سایه دار، گزینه bd را بیشتر از صفر قرار داده و relief را به یکی از ثابتهایش مقداردهی کنید. |
Width | عرض پنجره را مشخص میکند. |
برای استفاده از خاصیتهای بالا، باید آنها را به صورت کلید/مقدار به تابع ()configure مربوط به شیء پنجره اصلی، ارسال کرد:
import tkinter window = tkinter.Tk() window.configure(bg="yellow", height='300px', width='300px', cursor="wait") window.mainloop()
با اجرای برنامه بالا پنجره به صورت زیر تغییر میکند:
حال اگر نشانگر ماوس را هم بر روی این پنجره قرار دهید، مشاهده میکنید که شکل آن نیز تغییر میکند. شیء Top Level دارای توابع زیر میباشد:
تابع | شرح |
()deiconify | نمایش پنجره، پس از استفاده از توابع iconify یا withdraw. پنجره را از حالت Minimize یا مخفی در میآورد. |
()frame | شناسه خاص سیستم، برای پنجره را بر میگرداند. |
()geometry | طول و عرض و همچنین موقعیت قرار گیری پنجره در صفحه نمایش را تعیین میکند. |
group(window) | پنجره را به گروه خاصی، که به وسیله window مدیریت میشود، اضافه میکند. |
()iconify | پنجره را به صورت یک آیکون در task bar نمایش میدهد، که با کلیک بر روی آن، پنجره نمایش داده میشود. میتوان گفت که برای Minimize کردن پنجره به کار میرود. |
protocol(name,function) | ثبت یک تابع به عنوان Callback به منظور فراخوانی برای پروتکل مشخص شده. |
()state | وضعیت فعلی پنجره را باز میگرداند. مقادیر آن شامل: normal ،iconic ،withdrawn و icon است. |
transient([master]) | تبدیل پنجره به یک پنجره موقت برای master مشخص شده و یا والد پنجره، زمانی که ورودی به آن داده نشود. |
()withdraw | حذف پنجره از صفحه نمایش، بدون نابود سازی آن. |
maxsize(width, height) | مشخص کردن حداکثر اندازه برای پنجره. |
minsize(width, height) | مشخص کردن حداقل اندازه برای پنجره. |
positionfrom(who) | تعریف کنترل کننده موقعیت |
resizable(width,height) | مشحص میکند که آیا پنجره به وسیله ماوس قابل تغییر اندازه باشد یا نه؟ |
sizefrom(who) | تعریف کنترل کننده اندازه |
title(string) | تعیین عنوان پنجره |
به کد زیر توجه کنید :
import tkinter window = tkinter.Tk() window.resizable(False, False) window.mainloop()
در کد بالا با دادن مقدار False به تابع ()resizable از تغییر اندازه آن جلوگیری کردهایم. یعنی با ماوس نمیتوان عرض و ارتفاع آن را تغییر داد. برای تعیین عنوان پنجره هم از تابع ()title به صورت زیر استفاده میکنیم:
import tkinter window = tkinter.Tk() window.resizable(False, False) window.title("Top Level") window.mainloop()
با اجرای برنامه، مشاهده میکنید که عنوان پنجره به Top Level تغییر میکند:
اگر بخواهید که هم اندازه و هم موقعیت پنجره را تغییر دهید، میتوانید از تابع ()geometry به صورت زیر استفاده کنید:
import tkinter window = tkinter.Tk() window.resizable(False, False) window.title("Top Level") window.geometry('200x150+500+300') window.mainloop()
عدد 200 در کد بالا نشان دهنده عرض پنجره، 150، طول پنجره، 500، فاصله عمودی از گوشه بالا و سمت چپ مانیتور و 300 فاصله افقی از گوشه بالا و سمت چپ مانیتور، میباشد. شکل عمومی استفاده از این تابع به صورت زیر است:
geometry('wxh±x±y')
برای مخفی کردن پنجره هم از تابع ()withdraw استفاده میشود:
import tkinter window = tkinter.Tk() window.resizable(False, False) window.title("Top Level") window.geometry('200x150+500+300') window.withdraw() window.mainloop()
سلام ببخشید اون علامت پر ای که در بالای پنجره کنار نام پنجره هست رو چطور تغییر دهم؟
سلام
یک سوال دارم
من یک پنجره تکینتر در تابع باز کردم،ولی وقتی می خواهم یک عکس در آن باز کنم پایتون یک ارور می دهد.
یه نفر که پایتون کار بود گفت مشکل از خود پایتون هست.
گفت در باز کردن پنجره باید به جای Tk از یه چیز دیگه ای استفاده کنیم ولی متاسفانه یادش نمی آمد اون چی بود!
شما می توانید کمک کنید؟
سلام
تو بخش پرسش و پاسخ دقیق بفرمایید قراره چکار کنید… کد و خطایی که تولید شده رو بفرمایید تا دوستان راهنمایی کنن
باید هنگام کامپایل شدن ، بهش آیکون بدی
سلام ببخشید چجوری میشه اون پری که تو صفحه هست رو عوض کنیم و به جاش یه چیز دیگه بذاریم؟ خیلی مهمه توروخدا جواب بدید
سلام، لینک زیر رو ببینید
https://www.delftstack.com/howto/python-tkinter/how-to-set-window-icon-in-tkinter/