Dalam Tkinter, kaedah gelung utama digunakan untuk memulakan gelung acara utama aplikasi. Apabila dipanggil, ia memasuki gelung tak terhingga yang menunggu dan memproses peristiwa pengguna seperti klik tetikus, penekanan papan kekunci dan saiz semula tetingkap. Dengan menyemak acara secara berterusan, mainloop memastikan bahawa antara muka pengguna grafik (GUI) kekal responsif kepada input pengguna.
Di dalam gelung acara gelung utama, tetingkap utama aplikasi (biasanya contoh Tk) memantau acara sistem pengendalian asas beratur. Apabila peristiwa berlaku, seperti klik tetikus atau saiz semula tetingkap, fungsi panggil balik tetingkap dicetuskan untuk mengendalikan pemprosesan acara.
Tkinter juga menyediakan dua kaedah lain, kemas kini dan pengemaskinian_tugasan, yang mempunyai tujuan yang berbeza daripada mainloop.
Contoh kod yang disediakan menggunakan gelung sementara untuk mengemas kini kanvas secara berterusan dan mensimulasikan pergerakan sebiji bola. Dengan memanggil update_idletasks() dan update() dalam gelung, ia meniru gelagat mainloop. Walaupun pendekatan ini boleh berfungsi dengan berkesan, terdapat alternatif yang lebih baik yang tidak memerlukan gelung sementara yang jelas.
Kaedah selepas Tkinter membolehkan anda menjadualkan fungsi untuk dilaksanakan selepas kelewatan yang ditentukan. Menggunakan selepas itu, anda boleh menggantikan gelung sementara dan mencapai kesan animasi tidak menyekat seperti berikut:
def draw(self): self.canvas.move(self.id, 0, -1) self.canvas.after(50, self.draw) # Schedule draw() to be invoked after 50 milliseconds
Dalam coretan kod yang diubah suai ini, kaedah cabutan menjadualkan sendiri untuk digunakan semula selepas kelewatan 50 milisaat melalui kaedah selepas. Ini membolehkan GUI kekal responsif kepada input pengguna semasa animasi sedang dilaksanakan.
Atas ialah kandungan terperinci Bagaimanakah `mainloop`, `update` dan `update_idletasks` Tkinter Berbeza dan Bilakah Anda Perlu Menggunakan `after` Daripada Gelung `while` untuk Animasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!