استفاده از Entry

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

در این قسمت می خواهیم به بررسی نحوه ساخت باکس هایی که کاربر بتواند ورودی های متنی مورد نظر را در آن قرار دهد را بسازیم، که با نام Entry در این ماژول یاد می شوند. این تابع برای گرفتن ورودی های text از کاربر است و می توان از آن برای ساخت فرم هایی که می خواهیم کاربر آنها را پر کند استفاده کنیم. که در واقع می توانیم با استفاده از برچسب ها در کنار این ویدجت یک فرم برای ورود نام و نام فامیل کاربر را ایجاد کنیم. به مثال زیر توجه کنید.

نمونه کد:

# importing libraries
from tkinter import *

# building a window
window = Tk()

#adding window title
window.title("icc-aria gui app")

#making a label for first name entry
Label(window, text="First Name").pack()

#making the entry for first name
name = Entry(window)
name.pack()

#making a label for last name entry
Label(window, text="Last Name").pack()

#making the entry for last name
family_name = Entry(window)
family_name.pack()


#creating the loop for the program
window.mainloop()
# importing tkinter modules
from tkinter import *

# 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 label for first name entry
		Label(self, text="First Name").pack()

		#making the entry for first name
		name = Entry(self)
		name.pack()

		#making a label for last name entry
		Label(self, text="Last Name").pack()

		#making the entry for last name
		family_name = Entry(self)
		family_name.pack()

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

نکته: اگر دقت کنید در قسمت معرفی command ما تابع را بدون پرانتز قرار دادیم چون به صورت یک صفت بر روی کلید عمل خواهد کرد.

خروجی کد:

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

  • delete ( first, last=None )
  • get()
  • icursor()
  • index ( index )
  • insert ( index, s )
  • select_adjust ( index )
  • select_clear()
  • select_from ( index )
  • select_present()
  • select_range ( start, end )
  • select_to ( index )
  • xview ( index )
  • xview_scroll ( number, what )

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

کد نمونه:

# importing modules
from tkinter import *
#making a window instance
window = Tk()
#creating a title for window
window.title("icc-aria gui app")

def sign_in():
	first_name = name.get()
	last_name = family_name.get()
	print("welcome mr/ms {} {}".format(first_name,last_name))
	user_name.configure(text="welcome mr/ms {} {}".format(first_name,last_name))


Label(window, text="First Name").pack()

#making the entry for first name
name = Entry(window)
name.pack()

#making a label for last name entry
Label(window, text="Last Name").pack()

#making the entry for last name
family_name = Entry(window)
family_name.pack()

#making an action button
btn = Button(window,text="sign in",command=sign_in)
btn.pack()

#making a label to be able to welcome user
user_name = Label(window)
user_name.pack()

#making a loop for the window to run
window.mainloop()
# importing tkinter modules
from tkinter import *

# 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 label for first name entry
		Label(self, text="First Name").pack()

		#making the entry for first name
		self.name = Entry(self)
		self.name.pack()

		#making a label for last name entry
		Label(self, text="Last Name").pack()

		#making the entry for last name
		self.family_name = Entry(self)
		self.family_name.pack()

		#making an action button
		btn = Button(self,text="sign in",command=self.sign_in)
		btn.pack()

		#making a label to be able to welcome user
		self.user_name = Label(self)
		self.user_name.pack()

	#function to get the name and family name to show in window and console
	def sign_in(self):
		first_name = self.name.get()
		last_name = self.family_name.get()
		print("welcome mr/ms {} {}".format(first_name,last_name))
		self.user_name.configure(text="welcome mr/ms {} {}".format(first_name,last_name))



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

نمونه خروجی:

 

ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
captcha
4دیدگاه
  • SEZAR
    1 day, 11 hours ago

    ostan dakhel barname neveshte shode baraye amali kardan button ba estefade az tabe ghesmathaye neveshte shode be onvan self eshtebah hastan va bayad self haro pak konid
    khastam beheton begam ke digar dostan dochar moshkel nashan

    • علی بیگدلی
      1 day, 10 hours ago

      بله ایراداتی داشته که احتمالا موقع اضافه کردن قسمت های شئ گرایی دچار مشکل شده،
      ممنونم از یاد آوری

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

    سلام من میخوام یک برنامه ادیتور عکس بنویسم که بالای صفحه یک button باشه که کاربر وقتی زد روش عکس رو انتخاب کنه و نمیدونم چجوری این کار رو کنم لطفا بگید چجوری این کار رو کنم و اینکه بعدش چجوری میتونم عکس انتخاب شده رو تو یه متغییر بریزم که ادیتش کنم بعد

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

      شما می بایست با استفاده از askopenfile این کار رو انجام بدید برای اینکه با زدن دکمه بتونید ورودی از کاربر حالا هر مدل فایلی که هستش رو بگیرید
      به قطعه کده نوشته شده در این صفحه نگاه بندازید:
      https://stackoverflow.com/questions/16798937/creating-a-browse-button-with-tkinter