Ahmed Ahmed64 نشر 25 ديسمبر 2023 أرسل تقرير نشر 25 ديسمبر 2023 (معدل) السلام عليكم ورحمة الله وبركاته أين الخطأ في في كتابة هذا الكود وماهي أسهل طريقة لتتبع الكود ومعرفة الخطأ import customtkinter class Frame1(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.checkbox_1 = customtkinter.CTkCheckBox(self, text="checkbox 1") self.checkbox_1.grid(row=0, column=0, padx=10, pady=(10, 0), sticky="w") self.checkbox_2 = customtkinter.CTkCheckBox(self, text="checkbox 2") self.checkbox_2.grid(row=1, column=0, padx=10, pady=(10, 0), sticky="w") self.optionmenu = customtkinter.CTkOptionMenu(self, values=["option 1", "option 2"]) self.optionmenu.grid(row=2, column=0, padx=10, pady=(10, 0), sticky="w") class Frame2(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.button = customtkinter.CTkButton(self, text="فتح ملف", command=button_event) self.button.grid(row=0, column=0, padx=10, pady=(10, 0), sticky="w") class App(customtkinter.CTk): def __init__(self): super().__init__() self.title("my app") self.geometry("400x180") self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(0, weight=1) self.Frame_A = Frame1(self) self.Frame_A.grid(row=0, column=0, padx=10, pady=(10, 0), sticky="nsw") self.Frame_B = Frame2(self) self.Frame_B.grid(row=0, column=1, padx=10, pady=(10, 0), sticky="nsw") def button_event(Frame2): print("button_event") app = App() app.mainloop() تم التعديل في 25 ديسمبر 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس
0 Mustafa Suleiman نشر 25 ديسمبر 2023 أرسل تقرير نشر 25 ديسمبر 2023 رسالة الخطأ التي تظهر عند تشغيل الكود هي NameError: name 'button_event' is not defined وبالتالي هي تخبرك أن لديك متغير غير معرف. وبالرجوع للمستند الرسمي الخاص بـ customtkinter وبالتحديد CTkButton نجد مثال يخبرك بالطريقة الصحيحة: https://customtkinter.tomschimansky.com/documentation/widgets/button def button_event(): print("button pressed") button = customtkinter.CTkButton(app, text="CTkButton", command=button_event) لاحظ أنه قام بتعريف دالة بنفس الاسم الذي يتم تمريره في command وبالتالي يتم تنفيذ ما بداخل الدالة عند الضغط على الزر. عليك كتابة تلك الدالة 1 اقتباس
0 Ahmed Ahmed64 نشر 25 ديسمبر 2023 الكاتب أرسل تقرير نشر 25 ديسمبر 2023 أجل هذا ما قمت به فعلا ولاكن ظهر الخطأ هل المشكلة في التنفيذ من الكلاس أرجو تتبع الكود أخي لعلى هناك خطأ اقتباس
0 Mustafa Suleiman نشر 25 ديسمبر 2023 أرسل تقرير نشر 25 ديسمبر 2023 ما الخطأ الذي ظهر لك؟ الكود لديك لا يوجد به أي دالة باسم button_event 1 اقتباس
0 Ahmed Ahmed64 نشر 25 ديسمبر 2023 الكاتب أرسل تقرير نشر 25 ديسمبر 2023 (معدل) الخطأ : NameError: name 'button_event' is not defined import customtkinter class Frame1(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.checkbox_1 = customtkinter.CTkCheckBox(self, text="checkbox 1") self.checkbox_1.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="w") self.checkbox_2 = customtkinter.CTkCheckBox(self, text="checkbox 2") self.checkbox_2.grid(row=1, column=0, padx=3, pady=(3, 0), sticky="w") self.optionmenu = customtkinter.CTkOptionMenu(self, values=["option 1", "option 2"]) self.optionmenu.grid(row=2, column=0, padx=3, pady=(3, 0), sticky="we") class Frame2(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.button = customtkinter.CTkButton(self, text="فتح ملف",font=customtkinter.CTkFont(family="Calibri" ,size=12, weight="bold"), command=button_event) self.button.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="we") self.optionmenu2 = customtkinter.CTkOptionMenu(self, values=["option 1", "option 2"]) self.optionmenu2.grid(row=1, column=0, padx=3, pady=(3, 0), sticky="we") self.entry1 = customtkinter.CTkEntry(self, placeholder_text="إسم ورقة العمل",font=customtkinter.CTkFont(family="Calibri" ,size=12, weight="bold"),width=200) self.entry1.grid(row=2, column=0, padx=3, pady=(3, 0), sticky="we") class Frame3(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.button2 = customtkinter.CTkButton(self, text="تشغيل",font=customtkinter.CTkFont(family="Calibri" ,size=12, weight="bold")) self.button2.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="w") class App(customtkinter.CTk): def __init__(self): super().__init__() self.title("my app") self.geometry("400x180") self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(0, weight=1) self.Frame_A = Frame1(self) self.Frame_A.grid(row=0, column=0, padx=1, pady=(1, 0), sticky="nswe") self.Frame_B = Frame2(self) self.Frame_B.grid(row=0, column=1, padx=1, pady=(1, 0), sticky="nsw") self.Frame_C = Frame3(self) self.Frame_C.grid(row=1, column=0, padx=1, pady=(1, 10), sticky="nsw") def button_event(self): print("button_event") app = App() app.mainloop() تم التعديل في 25 ديسمبر 2023 بواسطة Ahmed Ahmed64 اقتباس
0 Mustafa Suleiman نشر 25 ديسمبر 2023 أرسل تقرير نشر 25 ديسمبر 2023 هذا ما ذكرته لك في الإجابة أول مرة قم بقراءة التعليق مرة أخرى 1 اقتباس
0 Ahmed Ahmed64 نشر 25 ديسمبر 2023 الكاتب أرسل تقرير نشر 25 ديسمبر 2023 (معدل) معذرة أخي كل ما ذكر في تعليقك تم تطبيقه إذا إين الخطأ في ذلك هل الدالة صحيحة هكذا def button_event(self): print("button_event") تم التعديل في 25 ديسمبر 2023 بواسطة Ahmed Ahmed64 اقتباس
0 Mustafa Suleiman نشر 25 ديسمبر 2023 أرسل تقرير نشر 25 ديسمبر 2023 قم بكتابة دالة button_event كالتالي: class Frame2(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) def button_event(): print("button pressed") self.button = customtkinter.CTkButton( self, text="فتح ملف", command=button_event) self.button.grid(row=0, column=0, padx=10, pady=(10, 0), sticky="w") 1 اقتباس
0 Ahmed Ahmed64 نشر 25 ديسمبر 2023 الكاتب أرسل تقرير نشر 25 ديسمبر 2023 بتاريخ 1 دقيقة مضت قال Mustafa Suleiman: قم بكتابة دالة button_event كالتالي: class Frame2(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) def button_event(): print("button pressed") self.button = customtkinter.CTkButton( self, text="فتح ملف", command=button_event) self.button.grid(row=0, column=0, padx=10, pady=(10, 0), sticky="w") أخي أحتاج أن تكون الدالة داخل class App def button_event(): print("button pressed") وليس كما فعلت حضرتك اقتباس
السؤال
Ahmed Ahmed64
السلام عليكم ورحمة الله وبركاته
أين الخطأ في في كتابة هذا الكود
وماهي أسهل طريقة لتتبع الكود ومعرفة الخطأ
تعديل عنوان السؤال
8 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.