Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Imej Tkinter Saya Tidak Dipaparkan Di Dalam Kelas?

Mengapa Imej Tkinter Saya Tidak Dipaparkan Di Dalam Kelas?

Susan Sarandon
Lepaskan: 2024-12-23 17:06:26
asal
541 orang telah melayarinya

Why Aren't My Tkinter Images Displaying Inside Classes?

Mengapa Imej Tkinter Gagal Dipaparkan dalam Kelas: Kes Yang Ingin Tahu

Dalam Tkinter, pustaka GUI yang popular untuk Python, selalunya imej gagal dipaparkan apabila dicipta dalam fungsi atau kaedah kelas. Mari kita selidiki sebab di sebalik tingkah laku pelik ini.

Apabila menggunakan Tkinter di luar kelas, adalah mudah untuk mencipta dan memaparkan imej. Seperti yang ditunjukkan dalam coretan kod pertama, hanya isytiharkan imej menggunakan tkinter.PhotoImage dan tetapkan ia pada kanvas. Walau bagaimanapun, apabila kod itu dibalut dalam kelas (seperti yang ditunjukkan dalam coretan kedua), imej berhenti dipapar.

Kunci kepada masalah terletak pada memahami hayat pembolehubah Python. Pembolehubah setempat, seperti pembolehubah foto dalam contoh yang disediakan, hanya wujud dalam skop fungsi atau kaedah yang ditakrifkan. Dalam kes kelas, pembolehubah foto dimusnahkan selepas contoh kelas dibuat, menjadikan Tkinter tidak dapat untuk mengaksesnya lagi.

Untuk membetulkan keadaan ini, adalah perlu untuk menyimpan rujukan kepada imej di luar skop fungsi atau kaedah. Ini boleh dicapai dengan memberikan pembolehubah foto kepada contoh kelas itu sendiri. Seperti yang ditunjukkan dalam penyelesaian yang disediakan:

self.photo = tkinter.PhotoImage(...)
Salin selepas log masuk

Dengan berbuat demikian, foto menjadi pembolehubah tika dan hayatnya dilanjutkan untuk tempoh kewujudan tika kelas. Ini membolehkan Tkinter mengakses imej dan memaparkannya seperti yang dijangkakan.

Jika menghadapi isu serupa dengan imej yang gagal dipaparkan dalam Tkinter, ingat untuk menyemak skop pembolehubah imej anda dan pastikan ia berterusan di luar fungsi atau kaedah dalam yang mereka diciptakan.

Atas ialah kandungan terperinci Mengapa Imej Tkinter Saya Tidak Dipaparkan Di Dalam Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan