ساخت یک کلید یا button

  • مدرس: علی بیگدلی
  • تاریخ انتشار: Aug 26, 2020

حال که با ساخت پنجره و ایجاد برچسب در صفحه آشنا شده این می بایست که سطح کار را بالا تر ببریم و تعامل با کاربر را نیز ایجاد کنیم. برای این کار از ساده ترین موردی که می توان مثال زد شروع می کنیم. ساخت کلید یا دکمه (button) این کلید می تواند برای انجام عملیات های زیادی در نظر گرفته شود از جمله اجرا عملیات های ساده برای گرفتن خروجی و یا حتی روشن و خاموش کردن المان های همان صفحه و یا اتصال آن برای اجرا اسکریپت هایی که خودتون به هر زبانی می نویسید.

کلید یا Button

برای ساخت کلید می توان از تابع button استفاده کرد، این تابع دو آرگومان ورودی را شامل خواهد شد که اولی پنجره ای است که این کلید می خواهد در آن تشکیل شود و آرگومان دوم شامل تنظیماتی خواهد بود که برای این کلید در نظر می گیرید که شامل نام تغییرات ظاهری و عملکرد هایی است که انتظار می رود پس از تغییر وضعیت کلید صورت بگیرد.مثال زیر یک صفحه با کلیدی بسیار ساده در آن را به شما نشان خواهد داد. آرگومان هایی که می توانید برای صفت های هر کدام از کلید ها برای آن تخصیص دهید:

  • text برای ایجاد یک برچسب بر روی کلید مورد نظر
  • bg برای ایجاد رنگ پیش زمینه کلید مورد نظر
  • fg برای ایجاد رنگ بر روی نوشته ای که بر روی کلید قرار گرفته
  • command برای اتصال کلید به یک تابع و یا عملیاتی کی می خواهید پس از فرشدن کلید به آن رجوع کند
  • state برای ایجاد وضعیت اولیه که شامل 3 پارامتر active و normal و disabled میشه

نمونه کد:

#importing modules
from tkinter import *
#making a window instance
window = Tk()
#creating a title for window
window.title("icc-aria gui app")
#making a button inside the window and packing it
Button(window, text="Click Me").pack()
#making a loop for the window to run
window.mainloop()
# importing tkinter modules
from tkinter import Tk,Button

# inherianceing from Tk module and initializing the Tk class for creating object
class App(Tk):
    def __init__(self):
        Tk.__init__(self)
        self.title("icc-aria gui app")
        #making a button inside the window and packing it
        Button(self, text="Click Me").pack()

# creating the object of app for tk main window
if __name__ == "__main__":
    app = App()
    app.mainloop()
 

نمونه خروجی:

اما ایجاد تغییرات فقط شامل زمان ساخت نمی شود و در هر لحظه می توان این تنظیمات کلید را تغییر داد به عنوان مثال می خواهیم این تغییرات را با استفاده از متد configure بعد از ایجاد کلید در آن ایجاد کنیم. برای این کار ابتدا کلید را تعریف و آن را به عنوان یک object درون متغیری می ریزیم و تنظیمات لازم را بر روی آن انجام می دهیم. به مثال زیر توجه کنید. نمونه کد:

#importing modules
from tkinter import *
#making a window instance
window = Tk()
#creating a title for window
window.title("icc-aria gui app")
#making a button inside the window 
btn = Button(window)
#configuring the button
btn.configure(text="Click Me",bg="yellow",fg="red")
#packing the button to insert in window
btn.pack()
#making a loop for the window to run
window.mainloop()
# importing tkinter modules
from tkinter import Tk,Button

# inherianceing from Tk module and initializing the Tk class for creating object
class App(Tk):
    def __init__(self):
        Tk.__init__(self)
        self.title("icc-aria gui app")
        #making a button inside the window and packing it
        self.btn = Button(self)
        #configuring the button
        self.btn.configure(text="Click Me",bg="yellow",fg="red")
        #packing the button to insert in window
        self.btn.pack()

# creating the object of app for tk main window
if __name__ == "__main__":
    app = App()
    app.mainloop()

نمونه خروجی:

 

ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
18دیدگاه
  • mrpro
    2 weeks, 4 days ago

    دمتون گرم که رایگان درس میدید

    • علی بیگدلی
      2 weeks, 4 days ago

      امیدوارم مفید واقع بشه

  • رضا احمدی
    1 month, 1 week ago

    دمت گرم عالی درس میدید

    • علی بیگدلی
      1 month, 1 week ago

      متشکر نظر لطفتونه

  • حسین ستاری
    2 months, 3 weeks ago

    از اموزش هاتون سیار متشکرم

    • علی بیگدلی
      2 months, 3 weeks ago

      خواهش می کنم امیدوارم مفید واقع شده باشن

  • ahmad
    3 months, 4 weeks ago

    چطوری باید جای دکمه رو تغیر بدیم؟

    • علی بیگدلی
      3 months, 3 weeks ago

      بخش grid و pack رو مشاهده کنین دوست عزیز

  • امیررضا خیرابادی
    4 months, 2 weeks ago

    سلام عرض میکند خدمت شما اقای بیگدلی خیلی ممنون از مطالب جذابتون.
    میخواستم بدونم اگر بخوایم رشته ها رو به صورت فارسی بنویسیم احتیاج به ویجیت خاصی هست یا همینطوری هم میشه یه رشته ی فارسی وارد کد کرد؟

    • علی بیگدلی
      4 months, 2 weeks ago

      نه مشکلی نیست می تونید فارسی بنویسید اما ممکنه در مواردی دیده بشه که نوشته ها به دلیل تنظیمات زبانی سیستم به درستی نمایش داده نشن، من معمولا پیشنهاد می کنم که از pyqt استفاده بشه که در برنامه سال جاریمون آموزشش هستش

    • امیررضا خیرابادی
      4 months, 2 weeks ago

      خیلی ممنون از راهنمایی ها خوبتون حتما اموزش هاتون رو نگاه میکنم
      فقت اگر امکانش هست بعد از پایان دوره ها بگید بهتره کدوم دوره رو ادامه بدیم و این ترتیب دوره های اموزشی رو بگید ممنون میشم

    • علی بیگدلی
      4 months, 2 weeks ago

      خواهش می کنم آخه ادامه دوره ها بستگی به کاری داره که می خواید انجام بدید

  • ایلیا قرهی
    5 months ago

    واقعا سایت و مطالبتون عالیه خیلی ممنون
    ببخشید دوره ی جنگو هم میزارین؟

    • علی بیگدلی
      5 months ago

      بله ، اما در حال حاضر تمرکز بر روی دوره پیشرفته پایتون هستش که تا اول بهمن ماه ارائه خواهد شد

  • محدرضا
    9 months, 1 week ago

    دستتون درد نکنه برا اموزشاتتون.خدا خیرتون بده.خیلیا گدا بازی در میارن و این چیزا رو می فروشن

    • علی بیگدلی
      9 months, 1 week ago

      خواهش می کنم امیدوارم که مفید بوده باشه

  • معراج کاظمی
    9 months, 2 weeks ago

    واقعا دستتون درد نکنه با این سایت خوبی که ساختید. این مطالب جاهای دیگه پولیه ولی اینجا رایگانه واقعا ممنون

    • علی بیگدلی
      9 months, 2 weeks ago

      خواهش می کنم امیدوارم که مورد پسندتون قرار گرفته باشه، لطفا با اشتراک گذاری این مطالب با دوستانتون این زنجیره آموزش رو گسترش بدید.