Memanggil Objek Tkinter dari File Lain
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)
Jadi saya memiliki kelas ini, dan di dalamnya, saya memiliki fungsi ini yang merupakan fungsi inisialisasi dan dengan itu saya memiliki banyak hal berbeda yang saya ingin dapatkan dari .get (). Saya baru saja mengetik satu contoh. Tetapi saya mencoba untuk mendapatkan masukan entri di luar kelas itu (sebenarnya saya mencoba untuk mendapatkannya dari file lain tetapi saya tahu cara mengimpornya dan sebagainya. Bagaimana saya melakukannya dalam kasus ini secara khusus?
Jawaban
Untuk objek yang ingin Anda akses di luar kelas, Anda harus menjadikannya sebagai atribut instance kelas.
Misalnya, Anda tidak akan menggunakan globallike dalam contoh Anda. Penggunaan globalsebagian besar mengalahkan tujuan penggunaan kelas. Sebaliknya, Anda melakukannya seperti ini:
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)
Untuk mendapatkan nilai dari entri, yang Anda butuhkan hanyalah referensi ke instance kelas.
root = tk.Tk()
...
guide = SneakerGuide(root)
...
print(f"The url is {guide.stockXURLInput.get9)}")
Ini bukanlah sesuatu yang unik untuk tkinter, beginilah cara kerja semua objek python.