Memanggil Objek Tkinter dari File Lain

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)

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

BryanOakley Nov 03 2020 at 08:29

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.