Ahmed Ahmed64 نشر 26 ديسمبر 2023 أرسل تقرير نشر 26 ديسمبر 2023 السلام عليكم أحتاج معالجة لهذا الكود بحيث يقوم بالوظيفة الأتية عند الضغط على زر اختيار ملف يتم تطبيق الدالة LoadFile و المسؤولة عن تحميل ملف إكسيل بداخلها def LoadFile(): filepath = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main",title="Open file okay?",filetypes= (("text files","*.xlsx"),("all files","*.*"))) filepathA = Path(filepath) self.AS = pd.ExcelFile(filepathA) الأن من بعد تم اختيار الملف وتحميله أريد أن يتم قراءة أسماء أوراق العمل الموجودة بداخل ملف الإكسيل وتحميلها كاقائمة إلى أداة self.optionmenu1 = customtkinter.CTkOptionMenu(self) self.optionmenu1.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="we") إليكم الأن الكود بالكامل للمعالجة عليه بالمطلوب import customtkinter from tkinter import filedialog from pathlib import Path import pandas as pd class Frame1(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.AS = None def LoadFile(): filepath = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main",title="Open file okay?",filetypes= (("text files","*.xlsx"),("all files","*.*"))) filepathA = Path(filepath) self.AS = pd.ExcelFile(filepathA) def sht(): if self.AS: AD = self.AS.sheet_names self.optionmenu1.values=AD return AD else: return [] self.button1 = customtkinter.CTkButton(self, text="إختيار ملف",font=customtkinter.CTkFont(family="Calibri" ,size=12, weight="bold"),command=LoadFile) self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="we") self.optionmenu1 = customtkinter.CTkOptionMenu(self) self.optionmenu1.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="we") 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) def button_event(): print("خروج") self.button2 = customtkinter.CTkButton(self, text="خروج",state= "disabled",font=customtkinter.CTkFont(family="Calibri" ,size=12, weight="bold"),command=button_event) 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) customtkinter.set_appearance_mode("dark") customtkinter.set_default_color_theme("dark-blue") 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="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 Ahmed Emad35 نشر 26 ديسمبر 2023 أرسل تقرير نشر 26 ديسمبر 2023 السلام عليكم من اجل ان تقوم الداله LoadFile بتحميل الملف كما تريد يجب عليك تعدليها للاتي بحيث تقوم باستدعاء الدالة sht للحصول على أسماء الأوراق وتحديث قيم OptionMenu بأسماء الأوراق هذه. import customtkinter from tkinter import filedialog from pathlib import Path import pandas as pd class Frame1(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.AS = None def LoadFile(): filepath = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main", title="Open file okay?", filetypes=(("text files", "*.xlsx"), ("all files", "*.*"))) filepathA = Path(filepath) self.AS = pd.ExcelFile(filepathA) AD = self.sht() self.optionmenu1.values = AD def sht(): if self.AS: AD = self.AS.sheet_names return AD else: return [] self.button1 = customtkinter.CTkButton(self, text="إختيار ملف", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"), command=LoadFile) self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="we") self.optionmenu1 = customtkinter.CTkOptionMenu(self) self.optionmenu1.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="we") 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) def button_event(): print("خروج") self.button2 = customtkinter.CTkButton(self, text="خروج", state="disabled", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"), command=button_event) 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) customtkinter.set_appearance_mode("dark") customtkinter.set_default_color_theme("dark-blue") 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="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 Ahmed Ahmed64 نشر 26 ديسمبر 2023 الكاتب أرسل تقرير نشر 26 ديسمبر 2023 (معدل) بتاريخ 1 ساعة قال Ahmed Emad35: السلام عليكم من اجل ان تقوم الداله LoadFile بتحميل الملف كما تريد يجب عليك تعدليها للاتي بحيث تقوم باستدعاء الدالة sht للحصول على أسماء الأوراق وتحديث قيم OptionMenu بأسماء الأوراق هذه. import customtkinter from tkinter import filedialog from pathlib import Path import pandas as pd class Frame1(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.AS = None def LoadFile(): filepath = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main", title="Open file okay?", filetypes=(("text files", "*.xlsx"), ("all files", "*.*"))) filepathA = Path(filepath) self.AS = pd.ExcelFile(filepathA) AD = self.sht() self.optionmenu1.values = AD def sht(): if self.AS: AD = self.AS.sheet_names return AD else: return [] self.button1 = customtkinter.CTkButton(self, text="إختيار ملف", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"), command=LoadFile) self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="we") self.optionmenu1 = customtkinter.CTkOptionMenu(self) self.optionmenu1.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="we") 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) def button_event(): print("خروج") self.button2 = customtkinter.CTkButton(self, text="خروج", state="disabled", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"), command=button_event) 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) customtkinter.set_appearance_mode("dark") customtkinter.set_default_color_theme("dark-blue") 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="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() أخي قمت بتجرب الكود الذي قمت حضرتك بتعديله ولاكن لم يعمل لم تدرج الأسماء بالقائمة فأين الخطأ الرجاء أخي التحقق من الكود حيث أن الخطأ يظهر هكذا AttributeError: 'Frame1' object has no attribute 'sht' تم التعديل في 26 ديسمبر 2023 بواسطة Ahmed Ahmed64 اقتباس
السؤال
Ahmed Ahmed64
السلام عليكم
أحتاج معالجة لهذا الكود بحيث يقوم بالوظيفة الأتية
عند الضغط على زر اختيار ملف يتم تطبيق الدالة LoadFile و المسؤولة عن تحميل ملف إكسيل بداخلها
الأن من بعد تم اختيار الملف وتحميله أريد أن يتم قراءة أسماء أوراق العمل الموجودة بداخل ملف الإكسيل
وتحميلها كاقائمة إلى أداة
إليكم الأن الكود بالكامل للمعالجة عليه بالمطلوب
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.