جدید آموزش ایجاد رابط گرافیکی کاربر (GUI) در پایتون به وسیله Tkinter قسمت 15 – Text
ویجت text مانند entry به کاربر اجازه می دهد که متن مورد نظرش را در آن وارد کند. تفاوت text با entry در این است که می توان متن های چند خطی و طولانی تر را در آن وارد کرد. همچنین امکان نمایش لینک و عکس هم در این ویجت وجود دارد.
در ابتدا قصد داریم برنامه ای بنویسیم که یک کادر متن دارد که مقادیری را از قبل در آن نوشته ایم. در پایین پنجره اصلی دو دکمه داریم که یکی کادر متن را پاک می کند و دیگری هر چه در کادر متن نوشته شده است را در یک لیبل نمایش می دهد.
import tkinter as tk from tkinter import * root = tk.Tk() root.geometry('300x300') root.resizable(False, False) root.title('Text karakit') def transfer(): mytext = txt.get('1.0','end') lbl.config(text=mytext) def clear(): txt.delete('1.0','end') transfer() txt = Text(root) txt.place(height=100,width=260,x=20,y=20) txt.insert(INSERT, "Hello world") txt.insert(END, " From karakit") txt_content = txt.get('1.0','end') lbl=Label(root, relief="groove") lbl.place(height=100,width=260,x=20,y=130) btnClear=tk.Button(root, text="Clear", command=clear) btnClear.place(height=30,width=50,x=50,y=250) btnTransfer=tk.Button(root, text="Write", command=transfer) btnTransfer.place(height=30,width=50,x=200,y=250) root.mainloop()
توضیح برنامه:
طبق معمول در خطوط 1 تا 6 کتابخانه tkinter را احضار و پنجره اصلی را ایجاد می کنیم. سپس دو تابع به نام Transfer و clear تعریف شده که بعدا به توضیح آنها خواهیم پرداخت.
در خط 13 یک ویجت text با نام txt ایجاد کرده ایم و در خط بعد آن را با ابعاد دلخواه در مکان دلخواه قرار می دهیم.
برای اینکه متنی را در کادر آن نمایش دهیم از دستور insert استفاده می کنیم. ابتدا از ابتدای خط اول جمله Hello World! را می نویسیم. در انتهای این عبارت این کاراکترها اضافه شده اند: \n
این کاراکترها باعث می شوند متنهای بعدی از خط دوم شروع شوند.
در خط 16 هم عبارت From karakit را به انتهای متن اضافه می کنیم.
برای اینکه محتوای داخل کادر را ذخیره کنیم در خط 17 متغیر txt_content را تعریف می کنیم و با دستور get از اولین کاراکتر خط اول تا انتهای متن را در این متغیر می ریزیم.
در خط 18 و 19 یک لیبل ایجاد و ابعاد و مکان آن را مشخص می کنیم.
در خط 20 یک دکمه به نام btnClear تعریف شده که قرار است کاربر با کلیک کردن آن بتواند متن کادر txt را پاک کند.
در خط 22 و 23 دکمه btnTransfer را تعریف و جانمایی کرده ایم. تابعی که به این دکمه اختصاص داده شده transfer است که در خط 7 تا 9 تعریف شده است. در این تابع ابتدا با دستور get محتوای متنی ویجت txt در متغیر mytext ذخیره می شود و در خط بعد این متغیر به متن لیبل lbl منتقل می گردد.
بنابراین کاربر با کلیک روی این دکمه می تواند متن داخل txt را در لیبل نمایش دهد.
تابعی که به دکمه btnClear اختصاص داده ایم clear است که در خط 10 تا 12 تعریف کرده ایم. در این تابع ابتدا با دستور delete محتوای متنی داخل کادر txt را پاک می کنیم. سپس باید متن لیبل را هم پاک کنیم. این کار را می توانیم به طور مستقیم با حذف متن لیبل انجام دهیم ، اما در اینجا با فراخوانی تابع transfer داخل تابع clear این کار را انجام داده ایم.
با اجرای برنامه پنجره به این صورت نمایش داده می شود:
به انتهای متن داخل کادر یک جمله اضافه می کنیم:
با کلیک روی دکمه write متن داخل کادر در لیبل نیز نمایش داده می شود:
با کلیک روی دکمه Clear متن کادر و متن لیبل پاک می شوند:
آموزشهای ابزار طراحی GUI در پایتون: tkinter
- کار با فایلها در پایتون tkinter
- کار با menubutton در پایتون tkinter
- کار با ویجت text در پایتون tkinter
- کار با منوها در پایتون tkinter
- کار با Radiobutton در پایتون tkinter
- کار با checkbutton در پایتون tkinter
- کار با scale یا اسلایدر در پایتون tkinter
- کار با spinbox در پایتون tkinter
- کار با combobox در پایتون tkinter
- کار با message box در پایتون tkinter
- کار با canvas در پایتون tkinter
- کار با listbox در پایتون tkinter
- کار با متغیرها در پایتون tkinter
- کار با Entry در پایتون tkinter
- کار با دکمه در پایتون tkinter
- کار با لیبل یا برچسب درپایتون tkinter
- آشنایی اولیه با tkinter ابزار استاندارد طراحی GUI در پایتون