เรียกใช้ Tkinter Objects จากไฟล์อื่น
Nov 03 2020
class SneakerGuide(tk.Frame): def __init__(self, parent, controller): tk.Frame.__init__(self, parent) global stockXURLInput stockXURLInput = Entry(sneakerBasicDetails) stockXURLInput.grid(row=5, column=1)
ดังนั้นฉันจึงมีคลาสนี้และภายในนั้นฉันมีฟังก์ชั่นนี้ซึ่งเป็นฟังก์ชันการเริ่มต้นและในขณะที่ฉันมีสิ่งต่าง ๆ มากมายที่ฉันต้องการ. get () จาก ฉันพิมพ์แค่ตัวอย่างเดียว แต่ฉันกำลังพยายามรับอินพุตรายการนอกคลาสนั้น (อันที่จริงฉันพยายามดึงมันมาจากไฟล์อื่น แต่ฉันรู้วิธีอิมพอร์ตและสิ่งต่างๆฉันจะทำอย่างไรในกรณีนี้โดยเฉพาะ
คำตอบ
BryanOakley Nov 03 2020 at 08:29
สำหรับอ็อบเจ็กต์ที่คุณต้องการเข้าถึงนอกคลาสคุณต้องทำให้เป็นอินสแตนซ์แอ็ตทริบิวต์ของคลาส
ตัวอย่างเช่นคุณจะไม่ใช้globallike ในตัวอย่างของคุณ การใช้งานglobalส่วนใหญ่ผิดวัตถุประสงค์ของการใช้คลาส แต่ให้ทำดังนี้
class SneakerGuide(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.stockXURLInput = Entry(sneakerBasicDetails)
self.stockXURLInput.grid(row=5, column=1)
เพื่อให้ได้ค่าจากรายการสิ่งที่คุณต้องมีคือการอ้างอิงถึงอินสแตนซ์ของคลาส
root = tk.Tk()
...
guide = SneakerGuide(root)
...
print(f"The url is {guide.stockXURLInput.get9)}")
นี่ไม่ใช่สิ่งพิเศษสำหรับ tkinter นี่คือวิธีการทำงานของวัตถุ python ทั้งหมด