ابدأ في إنشاء تطبيقات سطح المكتب في Python باستخدام مكتبة Tkinter GUI

ابدأ في إنشاء تطبيقات سطح المكتب في Python باستخدام مكتبة Tkinter GUI

Tkinter عبارة عن مجموعة أدوات لواجهة المستخدم الرسومية (GUI) يجب عليك تجربتها إذا كنت ترغب في استكشاف قوة Python في إنشاء تطبيقات سطح المكتب.





هنا ، نلقي نظرة على أساسيات وحدة Tkinter GUI.





كيف تجد كلمة مرور شخص ما

إعداد Tkinter

عادة ، لا تحتاج إلى تثبيت tkinter بشكل منفصل إذا قمت بتثبيت إصدار أحدث من Python ، بدءًا من Python 3. قد لا تعمل المكتبة مع إصدارات Python القديمة. هذه مشكلة شائعة لمستخدمي Mac و Linux ، حيث تأتي أنظمة التشغيل هذه عادةً مع إصدارات أقدم من Python افتراضيًا.





بشكل عام ، لاستخدام ملف tkinter الوحدة النمطية ، تأكد من تنزيل وتثبيت أحدث إصدار متوافق من Python على جهاز الكمبيوتر الخاص بك من المسؤول python.org موقع الكتروني.

إذا كنت تستخدم جهاز Mac ، فيمكنك بدلاً من ذلك تنزيل أحدث إصدار من ActiveTcl ، a tkinter مترجم من ActiveState .



كيفية استخدام Tkinter

يعتمد Tkinter على مدمج المعارف التقليدية صف دراسي. وتختتم جميع الأحداث داخل واجهة المستخدم الرسومية بتنسيق mainloop . وهكذا ، فإن mainloop غلاف يجعل الخاص بك tkinter التعليمات البرمجية القابلة للتنفيذ.

لتبدأ مع tkinter :





from tkinter import Tk
Tk().mainloop()

تشغيل الكود أعلاه يدور على ملف tkinter الإطار.

ومع ذلك ، فإن ميزات التخصيص الخاصة بـ Tkinter موجودة في عناصر واجهة المستخدم المدمجة.





لاستخدام هذه الأدوات ، يمكنك استيرادها من tkinter بتعويض من tkinter استيراد Tk مع:

from tkinter import *
t = Tk()
t.mainloop()

يمكنك أيضًا ضبط حجم النافذة بامتداد الهندسة وظيفة ثم حدد عنوانًا باستخدام لقب القطعة من tkinter :

t = Tk()
t.geometry('600x600')
t.title('Tk Tutorial')
t.mainloop()

القطعة تسمية Tkinter

يتيح لك Tkinter كتابة نصوص عادية مباشرة إلى واجهة المستخدم الرسومية باستخدام ملف ملصق القطعة:

t = Tk()
Label(t, text = 'MUO Tkinter tutorial').grid()
t.mainloop()

ال جريد() طريقة ، ومع ذلك ، هو بديل حزمة() طريقة. يقوم بإلصاق أدواتك بواجهة المستخدم الرسومية ، مما يجعلها مرئية.

يمكنك أيضًا تحديد خط خاص بك ملصق نص:

t = Tk()
Label(t, text = 'MUO Tkinter tutorial', font=(60)).grid()
t.mainloop()

العمل مع أدوات الأزرار في Tkinter

الأزرار هي بعض الأدوات الأكثر استخدامًا في ملفات tkinter . ويمكنك إضافة هذه الأزرار القابلة للنقر إلى واجهة المستخدم الرسومية باستخدام أدوات الأزرار المدمجة المتنوعة.

إليك كيفية إضافة زر أساسي إلى واجهة المستخدم الرسومية باستخدام ملف زر القطعة:

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white').grid()
t.mainloop()

ال bg و fg تصف الكلمات الرئيسية لون خلفية الزر ولون النص بداخله على التوالي.

يمكنك أيضًا ضبط بُعد الزر من خلال تضمين ملف ارتفاع و العرض العوامل:

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white', , ).grid()
t.mainloop()

إليك ناتج ذلك:

لا يمكن النقر فوق Windows 10 على شريط المهام

وإذا كنت تريد جعل الزر أكثر جاذبية من الناحية المرئية ، فيمكنك تضمين ملف تضاريس الكلمة الأساسية ثم اضبط عرض حدودها:

t = Tk()
Button(t, text='Clickable', bg='blue', fg='white',
height=2, width=10, relief=RAISED, borderwidth=6).grid()
t.mainloop()

وهذا يبدو كالتالي:

يحل محل رفع مع مسطحة لنرى كيف يتحقق ذلك.

يمكنك إضافة أي عدد تريده من الأزرار. لكن عليك توخي الحذر لتجنب تداخل المحتوى.

لتجنب التداخل ، يمكنك تحديد موضع الصف والعمود لكل زر:

t = Tk()
Button(t, text=1, bg='black', fg='white').grid(row=1, column=1)
Button(t, text=2, bg='black', fg='white').grid(row=2, column=1)
Button(t, text=3, bg='black', fg='white').grid(row=3, column=1)
Button(t, text=4, bg='black', fg='white').grid(row=4, column=1)
t.mainloop()

اختياري أمر الكلمة الرئيسية ، مع ذلك ، تضيف أحداثًا إلى ملف زر القطعة. في جوهرها ، إنها تثبت وظيفة اختيارية تتعامل مع أحداث معينة عند النقر فوق الزر.

الكود أدناه ، على سبيل المثال ، يضاعف قيمة كل زر في 6 عند النقر فوقه. ويستند إلى وظيفة محددة مسبقًا:

def buttonpress(r):
r = 6*r
Label(t, text=r, font=(60)).grid(row=5, column=2)
t = Tk()
Button(t, text = 1, bg = 'black', fg = 'white', width = 10, height = 2,
command = lambda:buttonpress(1)).grid(row=1, column = 1, pady = 6)
Button(t, text = 2, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(2)).grid(row = 2, column = 1, pady = 6)
Button(t, text = 3, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(3)).grid(row = 3, column = 1, pady = 6)
Button(t, text = 4, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(4)).grid(row = 4, column = 1, pady = 6)
t.mainloop()

في الكود أعلاه ، بضغطة زر يتعامل مع حدث الضرب. ال زر ثم يشير عنصر واجهة المستخدم إلى معالج الحدث هذا باستخدام مجهول لامدا وظيفة.

وإذا كنت قلقًا بشأن الواح الكلمة الرئيسية ، فهي تفصل بوضوح كل زر عبر الصف. استبدال هذا بـ بادكس يفصل الأزرار عبر العمود. ويمكنك استخدام كلتا الكلمتين الرئيسيتين في وقت واحد لفصل الأزرار عبر كلا المحورين حسب رغبتك.

ومع ذلك ، فأنت لا تريد إعادة اختراع العجلة لكل زر كما فعلت في الكود السابق. يؤدي هذا إلى إبطاء وقت التنفيذ ، بالإضافة إلى أنه يجعل من الصعب قراءة التعليمات البرمجية الخاصة بك وتضييقها.

ولكن يمكنك استخدم حلقة for لتجنب هذا التكرار.

إذن ، هذا إصدار أقصر وأفضل من الكود أعلاه:

def buttonpress(r):
r = 6*r
Label(t, text = r, font = (60)).grid(row = 5, column = 2)
t = Tk()
a = [1, 4, 6, 7]
for i in a:
j = lambda y = i:buttonpress(y)
Button(t, text = i, bg = 'black', fg = 'white', width = 10, height = 2,
command=j).grid(row = i, column = 1, pady = 6)
t.mainloop()

دعنا نستكشف قوة ل حلقة لإضافة أزرار القائمة إلى واجهة المستخدم الرسومية:

from tkinter import *
t = Tk()
buttons = ['Files', 'Dashboard', 'Menu', 'Settings', 'Help']
m = 0
for i in range(len(buttons)):
# Get each text in the buttons array using a list index as m increases.
# Then let the column increase by 1 through the length of the array:

Menubutton(t, text=buttons[m], bg='blue', fg='white').grid(row=5, column=i)
m += 1
t.mainloop()

تعد إضافة أزرار التحقق إلى واجهة المستخدم الرسومية أمرًا سهلاً أيضًا:

t = Tk()
Checkbutton(t, text = 'Select option').grid()
t.mainloop()

لا تتردد في مضاعفة زر الاختيار هذا باستخدام ل حلقة ، كما فعلنا سابقًا.

كيفية إنشاء قائمة منسدلة باستخدام أداة قائمة Tkinter

ال قائمة طعام يتيح لك عنصر واجهة المستخدم تصميم قوائم منسدلة قابلة للنقر بتنسيق tkinter .

كما حدد سابقا، tkinter يقدم العديد من خيارات القطعة. وستستخدم بعضها أثناء تصميم القائمة المنسدلة.

فيما يلي بعض خيارات الأدوات الشائعة التي ستظهر لك أثناء إنشاء قائمة منسدلة:

  • add_cascade: يعرض تسمية القائمة ويلصقها حيث تنتمي.
  • add_separator: يقوم بترسيم القوائم الفرعية وتجميعها في قوائم فرعية علوية وسفلية.
  • add_command: هذا هو المكان الذي تقوم فيه بتسمية القائمة الفرعية الخاصة بك. في النهاية ، يقبل وسيطة الأمر حيث يمكنك تحديد معالج الحدث.

إليك مثال قائمة منسدلة يستخدم هذه الخيارات الثلاثة:

from tkinter import *
t = Tk()
fileOptions = ['New', 'open', 'Save', 'Save as']
fileOptionsAfterseparator = ['Import', 'Export', 'Exit']
viewOptions = ['Transform', 'Edit', 'Create']
menuBar = Menu(t)
file = Menu(menuBar, tearoff=0)
for i in fileOptions:
file.add_command(label=i, command=None)
file.add_separator()
for i in fileOptionsAfterseparator:
file.add_command(label=i, command=None)
menuBar.add_cascade(label='File', menu=file)
View = Menu(menuBar, tearoff=0)
for i in viewOptions:
View.add_command(label=i, command=None)
menuBar.add_cascade(label='View', menu=View)
t.config(menu=menuBar)
t.mainloop()

انظر كيف يبدو ذلك:

قائمة خيارات Tkinter

ان الخيارات ، على عكس قائمة طعام القائمة المنسدلة ، تحول تسميتها إلى خيار محدد.

على الرغم من أنه يمكنك تحديد قيمة تسمية افتراضية لقائمة خيارات ، إلا أنها لا تحتوي على تسمية بشكل افتراضي.

متعلق ب: أفكار مشروع بايثون مناسبة للمبتدئين

إليك كيفية إنشاء قائمة خيارات بتنسيق tkinter :

t = Tk()
Omenu = StringVar() #set the variable type of the options
Omenu.set('MUO') #specify a default value for the menu icon
OptionMenu(t, Omenu, 'MUO', 'Amazon', 'Tutorial').grid()
t.mainloop()

قم ببناء تطبيق سطح مكتب قابل لإعادة الاستخدام باستخدام Tkinter

يقدم Tkinter مجموعة من الميزات التي تساعدك في إنشاء تطبيقات سطح مكتب تفاعلية بواجهة المستخدم الرسومية. على الرغم من أنه قد لا يحتوي على العديد من ميزات التجميل المرنة مثل بعض وحدات Python GUI الأخرى ، إلا أنها لا تزال أداة مفيدة تستحق الاستكشاف. وبينما تُظهر الأمثلة هنا فقط بعض المفاهيم الأساسية ، tkinter يقدم المزيد من الميزات المتقدمة التي يمكنك تجربتها.

كيفية جعل حساب جوجل واحد الافتراضي

ومع ذلك ، يمكنك إنشاء حاسبة واجهة المستخدم الرسومية لسطح المكتب ، أو إنشاء محرر نصي صغير ، أو حتى إنشاء تطبيق سطح مكتب واجهة المستخدم الرسومية لإدارة قوائم الجرد الخاصة بك. إذا كنت تريد أن تنشر أجنحتك وأن تصبح واجهة مستخدم رسومية رئيسية لسطح المكتب ، فيمكنك حتى التحقق من وحدات واجهة المستخدم الرسومية الأخرى في Python.

يشارك يشارك سقسقة بريد الالكتروني واجهة المستخدم الرسومية؟ ما هي واجهة المستخدم الرسومية؟

هل تستخدم واجهة المستخدم الرسومية؟ هناك احتمالات لأنك تستخدمها كل يوم.

اقرأ التالي
مواضيع ذات صلة
  • برمجة
  • بايثون
نبذة عن الكاتب إديسو أوميسولا(94 مقالة منشورة)

Idowu شغوف بأي شيء التكنولوجيا الذكية والإنتاجية. في أوقات فراغه ، يلعب بالبرمجة ويتحول إلى رقعة الشطرنج عندما يشعر بالملل ، لكنه أيضًا يحب الابتعاد عن الروتين من حين لآخر. يحفزه شغفه بإظهار الطريق للناس حول التكنولوجيا الحديثة على كتابة المزيد.

المزيد من Idowu Omisola

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك