اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

كيفه نطبق خصائص CTkFrame  مثل border_width أو border_color  على كود مكتوب بهذه الكيفية 

حاولت ولاكن لم تنجح

الرجاء التوضيح لو سمحتم

import customtkinter

class Frame1(customtkinter.CTkFrame):
    def __init__(self, master,border_color,border_width,fg_color):
        super().__init__(master)
        self.button1 = customtkinter.CTkButton(self, text="إختيار ملف", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"))
        self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="w")

class Frame2(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")

class Frame3(customtkinter.CTkFrame):
    def __init__(self, master):
        super().__init__(master)
        self.button2 = customtkinter.CTkButton(self, text="خروج", state="disabled", 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,"red",10,"red")
        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="nswe")
        self.Frame_C = Frame3(self)
        self.Frame_C.grid(row=1, column=0, padx=1, pady=(1, 10), sticky="nswe")

app = App()
app.mainloop()

 

Recommended Posts

  • 0
نشر

يمكنك ذلك باستخدام الميثود configure و ذلك بإستخادم المدخلات الخاصة بك و هذا كود ال Frame1 معدل و يمكنك تعديل باقي الكود بنفس الطريقة:

class Frame1(customtkinter.CTkFrame):
    def __init__(self, master, border_color, border_width, fg_color):
        super().__init__(master)
        self.configure(border_width=border_width,border_color=border_color,fg_color=fg_color)
        self.button1 = customtkinter.CTkButton(self, text="إختيار ملف",
                                               font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"))
        self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="w")

و هذه صورة للنتيجة:

Screenshot2023-12-27193843.png.5fc5346fe880f72277ed61cd57d9e46a.png

  • 0
نشر
  بتاريخ On 27‏/12‏/2023 at 18:39 قال Chihab Hedidi:

يمكنك ذلك باستخدام الميثود configure و ذلك بإستخادم المدخلات الخاصة بك و هذا كود ال Frame1 معدل و يمكنك تعديل باقي الكود بنفس الطريقة:

class Frame1(customtkinter.CTkFrame):
    def __init__(self, master, border_color, border_width, fg_color):
        super().__init__(master)
        self.configure(border_width=border_width,border_color=border_color,fg_color=fg_color)
        self.button1 = customtkinter.CTkButton(self, text="إختيار ملف",
                                               font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"))
        self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="w")

و هذه صورة للنتيجة:

Screenshot2023-12-27193843.png.5fc5346fe880f72277ed61cd57d9e46a.png

أظهر المزيد  

أحسنت أخي بارك الله فيك

إذا يجب إستخدام configure لذلك

سؤال لماذا لايتم التمرير مباشرة داخل كلاس class App وهل يمكن ذلك

self.Frame_A = Frame1(self)
        self.Frame_A.grid(row=0, column=0, padx=1, pady=(1, 0), sticky="nswe")

 

  • 0
نشر
  بتاريخ On 27‏/12‏/2023 at 18:49 قال Ahmed Ahmed64:

أحسنت أخي بارك الله فيك

إذا يجب إستخدام configure لذلك

سؤال لماذا لايتم التمرير مباشرة داخل كلاس class App وهل يمكن ذلك

أظهر المزيد  

في المثال الذي ارسلته قمت بالتمرير من داخل class App مثل الكود الذي كان موجود:

self.Frame_A = Frame1(self, "red", 3, "blue")

و هذا الكود كامل اذا اردت تجربه:

import customtkinter


class Frame1(customtkinter.CTkFrame):
    def __init__(self, master, border_color, border_width, fg_color):
        super().__init__(master)
        self.configure(border_width=border_width,border_color=border_color,fg_color=fg_color)
        self.button1 = customtkinter.CTkButton(self, text="إختيار ملف",
                                               font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"))
        self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="w")


class Frame2(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")


class Frame3(customtkinter.CTkFrame):
    def __init__(self, master):
        super().__init__(master)
        self.button2 = customtkinter.CTkButton(self, text="خروج", state="disabled",
                                               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, "red", 3, "blue")
        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="nswe")
        self.Frame_C = Frame3(self)
        self.Frame_C.grid(row=1, column=0, padx=1, pady=(1, 10), sticky="nswe")


app = App()
app.mainloop()


 

  • 0
نشر (معدل)
  بتاريخ On 27‏/12‏/2023 at 19:02 قال Chihab Hedidi:

في المثال الذي ارسلته قمت بالتمرير من داخل class App مثل الكود الذي كان موجود:

self.Frame_A = Frame1(self, "red", 3, "blue")

و هذا الكود كامل اذا اردت تجربه:

import customtkinter


class Frame1(customtkinter.CTkFrame):
    def __init__(self, master, border_color, border_width, fg_color):
        super().__init__(master)
        self.configure(border_width=border_width,border_color=border_color,fg_color=fg_color)
        self.button1 = customtkinter.CTkButton(self, text="إختيار ملف",
                                               font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"))
        self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="w")


class Frame2(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")


class Frame3(customtkinter.CTkFrame):
    def __init__(self, master):
        super().__init__(master)
        self.button2 = customtkinter.CTkButton(self, text="خروج", state="disabled",
                                               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, "red", 3, "blue")
        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="nswe")
        self.Frame_C = Frame3(self)
        self.Frame_C.grid(row=1, column=0, padx=1, pady=(1, 10), sticky="nswe")


app = App()
app.mainloop()


 

أظهر المزيد  

أخي من الممكن أن سؤالي كان غير مفهوم لديك

أقصد لماذا لم أمرر من خلال class App

بحيث كتب مثلا  border_color = " red 

لدي سؤال أخر 

كيف أستطيع أن أجعل واجهة التطبيق تقرأ العمود 0 من ناحية اليمين وليس الشمال

المقصود أخي تعريب الواجهة 

تم التعديل في بواسطة Ahmed Ahmed64
  • 0
نشر
  بتاريخ On 27‏/12‏/2023 at 19:11 قال Ahmed Ahmed64:

أخي من الممكن أن سؤالي كان غير مفهوم لديك

أقصد لماذا لم أمرر من خلال class App

بحيث كتب مثلا  border_color = " red 

لدي سؤال أخر 

كيف أستطيع أن أجعل واجهة التطبيق تقرأ العمود 0 من ناحية اليمين وليس الشمال

المقصود أخي تعريب الواجهة 

أظهر المزيد  

نعم يمكنك ذلك بحدث الكود من داخل Fram1 و تكتبه داخل App بهذه الطريقة:
 

import customtkinter


class Frame1(customtkinter.CTkFrame):
    def __init__(self, master):
        super().__init__(master)

        self.button1 = customtkinter.CTkButton(self, text="إختيار ملف",
                                               font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"))
        self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="w")


class Frame2(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")


class Frame3(customtkinter.CTkFrame):
    def __init__(self, master):
        super().__init__(master)
        self.button2 = customtkinter.CTkButton(self, text="خروج", state="disabled",
                                               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.configure(border_color="red", border_width=3 ,fg_color="blue")
        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="nswe")
        self.Frame_C = Frame3(self)
        self.Frame_C.grid(row=1, column=0, padx=1, pady=(1, 10), sticky="nswe")


app = App()
app.mainloop()

 اما بخصوص التعريب يمكنك استخدام الميثود pack كهذا المثال:
 

self.button1.pack(side="right")

 

  • 0
نشر
  بتاريخ On 27‏/12‏/2023 at 20:00 قال Chihab Hedidi:

نعم يمكنك ذلك بحدث الكود من داخل Fram1 و تكتبه داخل App بهذه الطريقة:
 

import customtkinter


class Frame1(customtkinter.CTkFrame):
    def __init__(self, master):
        super().__init__(master)

        self.button1 = customtkinter.CTkButton(self, text="إختيار ملف",
                                               font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"))
        self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="w")


class Frame2(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")


class Frame3(customtkinter.CTkFrame):
    def __init__(self, master):
        super().__init__(master)
        self.button2 = customtkinter.CTkButton(self, text="خروج", state="disabled",
                                               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.configure(border_color="red", border_width=3 ,fg_color="blue")
        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="nswe")
        self.Frame_C = Frame3(self)
        self.Frame_C.grid(row=1, column=0, padx=1, pady=(1, 10), sticky="nswe")


app = App()
app.mainloop()

 اما بخصوص التعريب يمكنك استخدام الميثود pack كهذا المثال:
 

self.button1.pack(side="right")

 

أظهر المزيد  

لدي هذا الخطأ 

tkinter.TclError: cannot use geometry manager grid inside .!frame1 which already has slaves managed by pack

  • 0
نشر
  بتاريخ On 27‏/12‏/2023 at 20:11 قال Ahmed Ahmed64:

لدي هذا الخطأ 

tkinter.TclError: cannot use geometry manager grid inside .!frame1 which already has slaves managed by pack

أظهر المزيد  

الكود الذي ارسلته يشتغل بدون اي مشاكل،
اذا قمت بتعديل آخر أرسل الكود الجديد.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...