SlideShare a Scribd company logo
1 of 11
Fifth GUI in Python
‫إعداد‬:
‫م‬.‫محمد‬ ‫علي‬
‫العربية‬ ‫التقنية‬ ‫نقابة‬
ATU
‫الفيديو‬ ‫محتويات‬
‫باستخدام‬ ‫بسيطة‬ ‫حاسبة‬ ‫ألة‬ ‫إنشاء‬ ‫حول‬ ‫تمرين‬Python GUI
‫الخرج‬ ‫شكل‬
‫الكود‬
‫ك‬ ‫بسبب‬ ‫وذلك‬ ‫أجزاء‬ ‫عدة‬ ‫إلى‬ ‫البرمجي‬ ‫الكود‬ ‫بتقسيم‬ ‫سنقوم‬‫حجمه‬ ‫بر‬
‫األول‬ ‫الجزء‬
from tkinter import *
expression = ""
def press(num):
global expression
expression = expression + str(num)
equation.set(expression)
‫ال‬ ‫مكتبة‬ ‫تم‬ ‫الجزء‬ ‫هذا‬ ‫في‬tkinter‫باسم‬ ‫متغير‬ ‫إنشاء‬ ‫تم‬ ‫ثم‬ ‫كاملة‬expression‫فارغ‬ ‫وبشكل‬
‫باسم‬ ‫تابع‬ ‫إنشاء‬ ‫تم‬ ‫ثم‬press‫باسم‬ ‫متحول‬ ‫ويأخذ‬num
‫المتغير‬ ‫وضع‬ ‫تم‬ ‫ثم‬expression‫النوع‬ ‫من‬global‫ضمن‬ ‫مكان‬ ‫أي‬ ‫من‬ ‫رؤيته‬ ‫ويمكن‬ ‫عام‬ ‫متحول‬ ‫أنه‬ ‫أي‬
‫البرنامج‬
‫القديمة‬ ‫القيمة‬ ‫هي‬ ‫المتحول‬ ‫هذا‬ ‫ضمن‬ ‫قيمة‬ ‫وضع‬ ‫تم‬ ‫ثم‬+‫المتغير‬ ‫خالل‬ ‫من‬ ‫تأتي‬ ‫التي‬ ‫القيمة‬num‫تحويلها‬ ‫بعد‬
‫النصي‬ ‫الشكل‬ ‫إلى‬
‫للمتغير‬ ‫النهائية‬ ‫القيمة‬ ‫وضع‬ ‫تم‬ ‫ثم‬expression‫تسميته‬ ‫تم‬ ‫الذي‬ ‫النص‬ ‫مربع‬ ‫ضمن‬equation
‫الثاني‬ ‫الجزء‬
def equalpress():
try:
global expression
total = str(eval(expression))
equation.set(total)
expression = ""
except:
equation.set(" error ")
expression = ""
‫الجزء‬ ‫ضمن‬ ‫وذلك‬ ‫إنشاء‬ ‫وتم‬ ‫الناتج‬ ‫لحساب‬ ‫جديد‬ ‫تابع‬ ‫تعريف‬ ‫تم‬try….except‫تنفيذ‬ ‫تم‬ ‫حال‬ ‫في‬ ‫الجزء‬ ‫هذا‬
‫في‬ ‫الموجود‬ ‫الجزء‬try‫ضمن‬ ‫الموجود‬ ‫الجزء‬ ‫تنفيذ‬ ‫يتم‬ ‫وإال‬ ‫وكامل‬ ‫واحد‬ ‫كجزء‬ ‫تنفيذه‬ ‫يتم‬except
‫الجزء‬ ‫في‬try‫المتغير‬ ‫تعريف‬ ‫إعادة‬ ‫تم‬expression‫باسم‬ ‫متغير‬ ‫ضمن‬ ‫النتيجة‬ ‫وضع‬ ‫وتم‬ ‫عام‬ ‫كمتحول‬total
‫التابع‬ ‫إلى‬ ‫القيمة‬ ‫وتمرير‬ ‫النصي‬ ‫الشكل‬ ‫إلى‬ ‫تحويله‬ ‫بعد‬eval
‫التابع‬eval‫العبارة‬ ‫تظهر‬ ‫خطأ‬ ‫وجود‬ ‫لم‬ ‫حال‬ ‫وفي‬ ‫فيه‬ ‫المدخلة‬ ‫القيمة‬ ‫بحساب‬ ‫يقوم‬error‫النص‬ ‫مربع‬ ‫في‬
‫المتحول‬ ‫وتفريغ‬expression
‫الثالث‬ ‫الجزء‬
def clear():
global expression
expression = ""
equation.set("")
‫باسم‬ ‫جديد‬ ‫تابع‬ ‫تعريف‬ ‫تم‬clear‫النص‬ ‫مربع‬ ‫محتويات‬ ‫مسح‬ ‫منه‬ ‫والهدف‬
‫المتحول‬ ‫تعريف‬ ‫إعادة‬ ‫تم‬expression‫الناتج‬ ‫مكان‬ ‫ضمن‬ ‫فارغة‬ ‫قيمة‬ ‫ووضع‬ ‫وتفريغه‬
‫الرابع‬ ‫الجزء‬
gui = Tk()
gui.configure(background="gray")
gui.title("My Calculator")
gui.geometry("300x150")
equation = StringVar()
expression_field = Entry(gui, textvariable=equation)
expression_field.grid(columnspan=4, ipadx=70)
equation.set('enter your expression')
‫بها‬ ‫الخاصة‬ ‫األساسية‬ ‫الخصائص‬ ‫ووضع‬ ‫الواجهة‬ ‫إنشاء‬
‫باسم‬ ‫معه‬ ‫سنتعامل‬ ‫الذي‬ ‫المتغير‬ ‫وتسمية‬ ‫النص‬ ‫مربع‬ ‫إنشاء‬equation‫سابقا‬ ‫ذكرنا‬ ‫كما‬
‫بداخله‬ ‫عبارة‬ ‫ووضع‬ ‫الواجهة‬ ‫ضمن‬ ‫النص‬ ‫مربع‬ ‫وضع‬
‫الخامس‬ ‫الجزء‬
button1 = Button(gui, text=' 1 ', fg='black', bg='red',
command=lambda: press(1), height=1, width=7)
button1.grid(row=2, column=0)
button2 = Button(gui, text=' 2 ', fg='black', bg='red',
command=lambda: press(2), height=1, width=7)
button2.grid(row=2, column=1)
button3 = Button(gui, text=' 3 ', fg='black', bg='red',
command=lambda: press(3), height=1, width=7)
button3.grid(row=2, column=2)
button4 = Button(gui, text=' 4 ', fg='black', bg='red',
command=lambda: press(4), height=1, width=7)
button4.grid(row=3, column=0)
‫الخاصية‬ ‫وضمن‬ ‫األزرار‬ ‫إنشاء‬command‫ال‬ ‫توابع‬ ‫استدعاء‬ ‫يتم‬lambda‫سابقا‬ ‫شرحها‬ ‫تم‬ ‫كما‬
‫السادس‬ ‫الجزء‬
button5 = Button(gui, text=' 5 ', fg='black', bg='red',
command=lambda: press(5), height=1, width=7)
button5.grid(row=3, column=1)
button6 = Button(gui, text=' 6 ', fg='black', bg='red',
command=lambda: press(6), height=1, width=7)
button6.grid(row=3, column=2)
button7 = Button(gui, text=' 7 ', fg='black', bg='red',
command=lambda: press(7), height=1, width=7)
button7.grid(row=4, column=0)
button8 = Button(gui, text=' 8 ', fg='black', bg='red',
command=lambda: press(8), height=1, width=7)
button8.grid(row=4, column=1)
button9 = Button(gui, text=' 9 ', fg='black', bg='red',
command=lambda: press(9), height=1, width=7)
button9.grid(row=4, column=2)
button0 = Button(gui, text=' 0 ', fg='black', bg='red',
command=lambda: press(0), height=1, width=7)
button0.grid(row=5, column=0)
‫السابع‬ ‫الجزء‬
plus = Button(gui, text=' + ', fg='black', bg='red', command=lambda: press("+"), height=1, width=7)
plus.grid(row=2, column=3)
minus = Button(gui, text=' - ', fg='black', bg='red', command=lambda: press("-"), height=1, width=7)
minus.grid(row=3, column=3)
multiply = Button(gui, text=' * ', fg='black', bg='red', command=lambda: press("*"), height=1, width=7)
multiply.grid(row=4, column=3)
divide = Button(gui, text=' / ', fg='black', bg='red', command=lambda: press("/"), height=1, width=7)
divide.grid(row=5, column=3)
equal = Button(gui, text=' = ', fg='black', bg='red', command=equalpress, height=1, width=7)
equal.grid(row=5, column=2)
clear = Button(gui, text='Clear', fg='black', bg='red', command=clear, height=1, width=7)
clear.grid(row=5, column=1)
Decimal= Button(gui, text='.', fg='black', bg='red', command=lambda: press('.'), height=1, width=7)
Decimal.grid(row=6, column=0)
gui.mainloop()

More Related Content

What's hot (8)

الفصل الرابع
الفصل الرابعالفصل الرابع
الفصل الرابع
 
الفصل الرابع
الفصل الرابعالفصل الرابع
الفصل الرابع
 
Ch8 ar2
Ch8 ar2Ch8 ar2
Ch8 ar2
 
Ch7 ar2
Ch7 ar2Ch7 ar2
Ch7 ar2
 
Visual programming in c# part1
Visual programming in c# part1Visual programming in c# part1
Visual programming in c# part1
 
Ch5 ar2
Ch5 ar2Ch5 ar2
Ch5 ar2
 
7 functions
7 functions7 functions
7 functions
 
اليوم الثالث
اليوم الثالثاليوم الثالث
اليوم الثالث
 

Similar to 14th session python fifth gui

برمجة الرسوم بلغة السي بلس بلس المرحلة الثالثة
     برمجة الرسوم بلغة السي بلس بلس المرحلة الثالثة     برمجة الرسوم بلغة السي بلس بلس المرحلة الثالثة
برمجة الرسوم بلغة السي بلس بلس المرحلة الثالثةميثاق المعموري
 
مراحل كتابة برنامج بلغة الفيجول بيسك
مراحل كتابة برنامج بلغة الفيجول بيسكمراحل كتابة برنامج بلغة الفيجول بيسك
مراحل كتابة برنامج بلغة الفيجول بيسكtahanisaad
 
الترديب الثاني عشر
الترديب الثاني عشرالترديب الثاني عشر
الترديب الثاني عشرRenewed Man
 
مقرر معالجة البيانات
مقرر معالجة البياناتمقرر معالجة البيانات
مقرر معالجة البياناتangel1990girle
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1jadalkinani1
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1jadalkinani1
 
Required Programs To Start Developing in Laravel
Required Programs To Start Developing in LaravelRequired Programs To Start Developing in Laravel
Required Programs To Start Developing in LaravelAliSuliman33
 
موقع ملزمتي - مراجعة ليلة الامتحان حاسب آلي للصف الثاني الثانوي الترم الثاني
موقع ملزمتي - مراجعة ليلة الامتحان حاسب آلي للصف الثاني الثانوي الترم الثانيموقع ملزمتي - مراجعة ليلة الامتحان حاسب آلي للصف الثاني الثانوي الترم الثاني
موقع ملزمتي - مراجعة ليلة الامتحان حاسب آلي للصف الثاني الثانوي الترم الثانيملزمتي
 
تدريبات من خلال ميكروسوفت فى البرمجة كان من خلال توجية الحاسب الآلى
تدريبات من خلال ميكروسوفت فى البرمجة  كان من خلال توجية الحاسب الآلىتدريبات من خلال ميكروسوفت فى البرمجة  كان من خلال توجية الحاسب الآلى
تدريبات من خلال ميكروسوفت فى البرمجة كان من خلال توجية الحاسب الآلىHanaa Ahmed
 
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptxالبرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptxSultanAlAnazi42
 
الموضوعات الموقع
الموضوعات الموقعالموضوعات الموقع
الموضوعات الموقعguest14c7e5
 
Picking.pdf
Picking.pdfPicking.pdf
Picking.pdfsoory1
 

Similar to 14th session python fifth gui (18)

برمجة الرسوم بلغة السي بلس بلس المرحلة الثالثة
     برمجة الرسوم بلغة السي بلس بلس المرحلة الثالثة     برمجة الرسوم بلغة السي بلس بلس المرحلة الثالثة
برمجة الرسوم بلغة السي بلس بلس المرحلة الثالثة
 
مراحل كتابة برنامج بلغة الفيجول بيسك
مراحل كتابة برنامج بلغة الفيجول بيسكمراحل كتابة برنامج بلغة الفيجول بيسك
مراحل كتابة برنامج بلغة الفيجول بيسك
 
الترديب الثاني عشر
الترديب الثاني عشرالترديب الثاني عشر
الترديب الثاني عشر
 
مقرر معالجة البيانات
مقرر معالجة البياناتمقرر معالجة البيانات
مقرر معالجة البيانات
 
Ch4 ar
Ch4 arCh4 ar
Ch4 ar
 
الحل
الحلالحل
الحل
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1
 
Required Programs To Start Developing in Laravel
Required Programs To Start Developing in LaravelRequired Programs To Start Developing in Laravel
Required Programs To Start Developing in Laravel
 
موقع ملزمتي - مراجعة ليلة الامتحان حاسب آلي للصف الثاني الثانوي الترم الثاني
موقع ملزمتي - مراجعة ليلة الامتحان حاسب آلي للصف الثاني الثانوي الترم الثانيموقع ملزمتي - مراجعة ليلة الامتحان حاسب آلي للصف الثاني الثانوي الترم الثاني
موقع ملزمتي - مراجعة ليلة الامتحان حاسب آلي للصف الثاني الثانوي الترم الثاني
 
تدريبات من خلال ميكروسوفت فى البرمجة كان من خلال توجية الحاسب الآلى
تدريبات من خلال ميكروسوفت فى البرمجة  كان من خلال توجية الحاسب الآلىتدريبات من خلال ميكروسوفت فى البرمجة  كان من خلال توجية الحاسب الآلى
تدريبات من خلال ميكروسوفت فى البرمجة كان من خلال توجية الحاسب الآلى
 
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptxالبرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
البرمجة بلغة سي ++ المحاضرة الأولى (2) copy.pptx
 
الموضوعات الموقع
الموضوعات الموقعالموضوعات الموقع
الموضوعات الموقع
 
Picking.pdf
Picking.pdfPicking.pdf
Picking.pdf
 
Ch2 ar
Ch2 arCh2 ar
Ch2 ar
 
C++
C++C++
C++
 
C++
C++C++
C++
 
Informatique
InformatiqueInformatique
Informatique
 

More from AliMohammad155

#1 الدرس الأول من دروس مسار تعلم ال SQL Server بعنوان مخطط ال ERD والتكامل ا...
#1  الدرس الأول من دروس مسار تعلم ال SQL Server بعنوان مخطط ال ERD والتكامل ا...#1  الدرس الأول من دروس مسار تعلم ال SQL Server بعنوان مخطط ال ERD والتكامل ا...
#1 الدرس الأول من دروس مسار تعلم ال SQL Server بعنوان مخطط ال ERD والتكامل ا...AliMohammad155
 
شرح مبسط وبسيط لمفهوم ال VLAN
شرح مبسط وبسيط لمفهوم ال VLANشرح مبسط وبسيط لمفهوم ال VLAN
شرح مبسط وبسيط لمفهوم ال VLANAliMohammad155
 
11th session classes diagrams
11th session classes diagrams11th session classes diagrams
11th session classes diagramsAliMohammad155
 
Static route and rip and ospf
Static route and rip and ospfStatic route and rip and ospf
Static route and rip and ospfAliMohammad155
 
Ninth session software engineering sequence diagram
Ninth session software engineering sequence diagramNinth session software engineering sequence diagram
Ninth session software engineering sequence diagramAliMohammad155
 
Routers and packet tracer
Routers and packet tracerRouters and packet tracer
Routers and packet tracerAliMohammad155
 
Viii session activity diagram
Viii session activity diagramViii session activity diagram
Viii session activity diagramAliMohammad155
 
Seventh session functional and non functional requrements & usecase example
Seventh session functional and non functional requrements & usecase exampleSeventh session functional and non functional requrements & usecase example
Seventh session functional and non functional requrements & usecase exampleAliMohammad155
 
Sixth session software engineering usecase diagrams
Sixth session software engineering usecase diagramsSixth session software engineering usecase diagrams
Sixth session software engineering usecase diagramsAliMohammad155
 
fifth session in networking subnetmask and subnetting
fifth session in networking subnetmask and subnettingfifth session in networking subnetmask and subnetting
fifth session in networking subnetmask and subnettingAliMohammad155
 
functional requirements and non functional requirements
functional requirements and non functional requirementsfunctional requirements and non functional requirements
functional requirements and non functional requirementsAliMohammad155
 
fourth session of basics in networks
fourth session of basics in networksfourth session of basics in networks
fourth session of basics in networksAliMohammad155
 
Fourth session software engineering
Fourth session software engineeringFourth session software engineering
Fourth session software engineeringAliMohammad155
 
third session of basics in networks
third session of basics in networksthird session of basics in networks
third session of basics in networksAliMohammad155
 
Third session software engineering
Third session software engineeringThird session software engineering
Third session software engineeringAliMohammad155
 
Second session Networking (Network topology)
Second session Networking (Network topology)Second session Networking (Network topology)
Second session Networking (Network topology)AliMohammad155
 
Second session software engineering algorithms
Second session software engineering   algorithmsSecond session software engineering   algorithms
Second session software engineering algorithmsAliMohammad155
 

More from AliMohammad155 (20)

#1 الدرس الأول من دروس مسار تعلم ال SQL Server بعنوان مخطط ال ERD والتكامل ا...
#1  الدرس الأول من دروس مسار تعلم ال SQL Server بعنوان مخطط ال ERD والتكامل ا...#1  الدرس الأول من دروس مسار تعلم ال SQL Server بعنوان مخطط ال ERD والتكامل ا...
#1 الدرس الأول من دروس مسار تعلم ال SQL Server بعنوان مخطط ال ERD والتكامل ا...
 
شرح مبسط وبسيط لمفهوم ال VLAN
شرح مبسط وبسيط لمفهوم ال VLANشرح مبسط وبسيط لمفهوم ال VLAN
شرح مبسط وبسيط لمفهوم ال VLAN
 
11th session classes diagrams
11th session classes diagrams11th session classes diagrams
11th session classes diagrams
 
10th session erd
10th session erd10th session erd
10th session erd
 
Static route and rip and ospf
Static route and rip and ospfStatic route and rip and ospf
Static route and rip and ospf
 
Ninth session software engineering sequence diagram
Ninth session software engineering sequence diagramNinth session software engineering sequence diagram
Ninth session software engineering sequence diagram
 
Routers and packet tracer
Routers and packet tracerRouters and packet tracer
Routers and packet tracer
 
Viii session activity diagram
Viii session activity diagramViii session activity diagram
Viii session activity diagram
 
OSI Model
OSI ModelOSI Model
OSI Model
 
Seventh session functional and non functional requrements & usecase example
Seventh session functional and non functional requrements & usecase exampleSeventh session functional and non functional requrements & usecase example
Seventh session functional and non functional requrements & usecase example
 
Vlsm and flsm example
Vlsm and flsm exampleVlsm and flsm example
Vlsm and flsm example
 
Sixth session software engineering usecase diagrams
Sixth session software engineering usecase diagramsSixth session software engineering usecase diagrams
Sixth session software engineering usecase diagrams
 
fifth session in networking subnetmask and subnetting
fifth session in networking subnetmask and subnettingfifth session in networking subnetmask and subnetting
fifth session in networking subnetmask and subnetting
 
functional requirements and non functional requirements
functional requirements and non functional requirementsfunctional requirements and non functional requirements
functional requirements and non functional requirements
 
fourth session of basics in networks
fourth session of basics in networksfourth session of basics in networks
fourth session of basics in networks
 
Fourth session software engineering
Fourth session software engineeringFourth session software engineering
Fourth session software engineering
 
third session of basics in networks
third session of basics in networksthird session of basics in networks
third session of basics in networks
 
Third session software engineering
Third session software engineeringThird session software engineering
Third session software engineering
 
Second session Networking (Network topology)
Second session Networking (Network topology)Second session Networking (Network topology)
Second session Networking (Network topology)
 
Second session software engineering algorithms
Second session software engineering   algorithmsSecond session software engineering   algorithms
Second session software engineering algorithms
 

14th session python fifth gui

  • 1. Fifth GUI in Python ‫إعداد‬: ‫م‬.‫محمد‬ ‫علي‬ ‫العربية‬ ‫التقنية‬ ‫نقابة‬ ATU
  • 2. ‫الفيديو‬ ‫محتويات‬ ‫باستخدام‬ ‫بسيطة‬ ‫حاسبة‬ ‫ألة‬ ‫إنشاء‬ ‫حول‬ ‫تمرين‬Python GUI
  • 4. ‫الكود‬ ‫ك‬ ‫بسبب‬ ‫وذلك‬ ‫أجزاء‬ ‫عدة‬ ‫إلى‬ ‫البرمجي‬ ‫الكود‬ ‫بتقسيم‬ ‫سنقوم‬‫حجمه‬ ‫بر‬
  • 5. ‫األول‬ ‫الجزء‬ from tkinter import * expression = "" def press(num): global expression expression = expression + str(num) equation.set(expression) ‫ال‬ ‫مكتبة‬ ‫تم‬ ‫الجزء‬ ‫هذا‬ ‫في‬tkinter‫باسم‬ ‫متغير‬ ‫إنشاء‬ ‫تم‬ ‫ثم‬ ‫كاملة‬expression‫فارغ‬ ‫وبشكل‬ ‫باسم‬ ‫تابع‬ ‫إنشاء‬ ‫تم‬ ‫ثم‬press‫باسم‬ ‫متحول‬ ‫ويأخذ‬num ‫المتغير‬ ‫وضع‬ ‫تم‬ ‫ثم‬expression‫النوع‬ ‫من‬global‫ضمن‬ ‫مكان‬ ‫أي‬ ‫من‬ ‫رؤيته‬ ‫ويمكن‬ ‫عام‬ ‫متحول‬ ‫أنه‬ ‫أي‬ ‫البرنامج‬ ‫القديمة‬ ‫القيمة‬ ‫هي‬ ‫المتحول‬ ‫هذا‬ ‫ضمن‬ ‫قيمة‬ ‫وضع‬ ‫تم‬ ‫ثم‬+‫المتغير‬ ‫خالل‬ ‫من‬ ‫تأتي‬ ‫التي‬ ‫القيمة‬num‫تحويلها‬ ‫بعد‬ ‫النصي‬ ‫الشكل‬ ‫إلى‬ ‫للمتغير‬ ‫النهائية‬ ‫القيمة‬ ‫وضع‬ ‫تم‬ ‫ثم‬expression‫تسميته‬ ‫تم‬ ‫الذي‬ ‫النص‬ ‫مربع‬ ‫ضمن‬equation
  • 6. ‫الثاني‬ ‫الجزء‬ def equalpress(): try: global expression total = str(eval(expression)) equation.set(total) expression = "" except: equation.set(" error ") expression = "" ‫الجزء‬ ‫ضمن‬ ‫وذلك‬ ‫إنشاء‬ ‫وتم‬ ‫الناتج‬ ‫لحساب‬ ‫جديد‬ ‫تابع‬ ‫تعريف‬ ‫تم‬try….except‫تنفيذ‬ ‫تم‬ ‫حال‬ ‫في‬ ‫الجزء‬ ‫هذا‬ ‫في‬ ‫الموجود‬ ‫الجزء‬try‫ضمن‬ ‫الموجود‬ ‫الجزء‬ ‫تنفيذ‬ ‫يتم‬ ‫وإال‬ ‫وكامل‬ ‫واحد‬ ‫كجزء‬ ‫تنفيذه‬ ‫يتم‬except ‫الجزء‬ ‫في‬try‫المتغير‬ ‫تعريف‬ ‫إعادة‬ ‫تم‬expression‫باسم‬ ‫متغير‬ ‫ضمن‬ ‫النتيجة‬ ‫وضع‬ ‫وتم‬ ‫عام‬ ‫كمتحول‬total ‫التابع‬ ‫إلى‬ ‫القيمة‬ ‫وتمرير‬ ‫النصي‬ ‫الشكل‬ ‫إلى‬ ‫تحويله‬ ‫بعد‬eval ‫التابع‬eval‫العبارة‬ ‫تظهر‬ ‫خطأ‬ ‫وجود‬ ‫لم‬ ‫حال‬ ‫وفي‬ ‫فيه‬ ‫المدخلة‬ ‫القيمة‬ ‫بحساب‬ ‫يقوم‬error‫النص‬ ‫مربع‬ ‫في‬ ‫المتحول‬ ‫وتفريغ‬expression
  • 7. ‫الثالث‬ ‫الجزء‬ def clear(): global expression expression = "" equation.set("") ‫باسم‬ ‫جديد‬ ‫تابع‬ ‫تعريف‬ ‫تم‬clear‫النص‬ ‫مربع‬ ‫محتويات‬ ‫مسح‬ ‫منه‬ ‫والهدف‬ ‫المتحول‬ ‫تعريف‬ ‫إعادة‬ ‫تم‬expression‫الناتج‬ ‫مكان‬ ‫ضمن‬ ‫فارغة‬ ‫قيمة‬ ‫ووضع‬ ‫وتفريغه‬
  • 8. ‫الرابع‬ ‫الجزء‬ gui = Tk() gui.configure(background="gray") gui.title("My Calculator") gui.geometry("300x150") equation = StringVar() expression_field = Entry(gui, textvariable=equation) expression_field.grid(columnspan=4, ipadx=70) equation.set('enter your expression') ‫بها‬ ‫الخاصة‬ ‫األساسية‬ ‫الخصائص‬ ‫ووضع‬ ‫الواجهة‬ ‫إنشاء‬ ‫باسم‬ ‫معه‬ ‫سنتعامل‬ ‫الذي‬ ‫المتغير‬ ‫وتسمية‬ ‫النص‬ ‫مربع‬ ‫إنشاء‬equation‫سابقا‬ ‫ذكرنا‬ ‫كما‬ ‫بداخله‬ ‫عبارة‬ ‫ووضع‬ ‫الواجهة‬ ‫ضمن‬ ‫النص‬ ‫مربع‬ ‫وضع‬
  • 9. ‫الخامس‬ ‫الجزء‬ button1 = Button(gui, text=' 1 ', fg='black', bg='red', command=lambda: press(1), height=1, width=7) button1.grid(row=2, column=0) button2 = Button(gui, text=' 2 ', fg='black', bg='red', command=lambda: press(2), height=1, width=7) button2.grid(row=2, column=1) button3 = Button(gui, text=' 3 ', fg='black', bg='red', command=lambda: press(3), height=1, width=7) button3.grid(row=2, column=2) button4 = Button(gui, text=' 4 ', fg='black', bg='red', command=lambda: press(4), height=1, width=7) button4.grid(row=3, column=0) ‫الخاصية‬ ‫وضمن‬ ‫األزرار‬ ‫إنشاء‬command‫ال‬ ‫توابع‬ ‫استدعاء‬ ‫يتم‬lambda‫سابقا‬ ‫شرحها‬ ‫تم‬ ‫كما‬
  • 10. ‫السادس‬ ‫الجزء‬ button5 = Button(gui, text=' 5 ', fg='black', bg='red', command=lambda: press(5), height=1, width=7) button5.grid(row=3, column=1) button6 = Button(gui, text=' 6 ', fg='black', bg='red', command=lambda: press(6), height=1, width=7) button6.grid(row=3, column=2) button7 = Button(gui, text=' 7 ', fg='black', bg='red', command=lambda: press(7), height=1, width=7) button7.grid(row=4, column=0) button8 = Button(gui, text=' 8 ', fg='black', bg='red', command=lambda: press(8), height=1, width=7) button8.grid(row=4, column=1) button9 = Button(gui, text=' 9 ', fg='black', bg='red', command=lambda: press(9), height=1, width=7) button9.grid(row=4, column=2) button0 = Button(gui, text=' 0 ', fg='black', bg='red', command=lambda: press(0), height=1, width=7) button0.grid(row=5, column=0)
  • 11. ‫السابع‬ ‫الجزء‬ plus = Button(gui, text=' + ', fg='black', bg='red', command=lambda: press("+"), height=1, width=7) plus.grid(row=2, column=3) minus = Button(gui, text=' - ', fg='black', bg='red', command=lambda: press("-"), height=1, width=7) minus.grid(row=3, column=3) multiply = Button(gui, text=' * ', fg='black', bg='red', command=lambda: press("*"), height=1, width=7) multiply.grid(row=4, column=3) divide = Button(gui, text=' / ', fg='black', bg='red', command=lambda: press("/"), height=1, width=7) divide.grid(row=5, column=3) equal = Button(gui, text=' = ', fg='black', bg='red', command=equalpress, height=1, width=7) equal.grid(row=5, column=2) clear = Button(gui, text='Clear', fg='black', bg='red', command=clear, height=1, width=7) clear.grid(row=5, column=1) Decimal= Button(gui, text='.', fg='black', bg='red', command=lambda: press('.'), height=1, width=7) Decimal.grid(row=6, column=0) gui.mainloop()