2010-02-21 41 views

Trả lời

24

"quit() dừng trình thông dịch TCL. Đây là trong hầu hết các trường hợp bạn muốn, bởi vì ứng dụng Tkinter của bạn cũng sẽ dừng. Đó có thể là một vấn đề, nếu bạn gọi ứng dụng của bạn ở chế độ chờ. Tkinker-app, vì vậy nếu bạn gọi quit() trong ứng dụng của bạn và thông dịch viên TCL bị chấm dứt, nhàn rỗi cũng sẽ chấm dứt (hoặc bị lẫn lộn). để an toàn hơn nếu bạn gọi ứng dụng của mình từ một ứng dụng Tkinter khác hoặc nếu bạn có nhiều vòng lặp chính. "

lấy từ http://www.daniweb.com/forums/thread66698.html

+2

Câu trả lời này không hoàn toàn chính xác. 'root.quit()' không "dừng trình thông dịch TCL". Nó chỉ gây ra 'mainloop' để thoát. Trình thông dịch vẫn còn nguyên vẹn, giống như tất cả các widget. Việc gọi 'root.destroy()' sẽ hủy tất cả các widget _and_ thoát 'mainloop'. –

10

root.quit() nguyên nhân mainloop để thoát. Trình thông dịch vẫn còn nguyên vẹn, giống như tất cả các widget. Nếu bạn gọi hàm này, bạn có thể có mã thực hiện sau cuộc gọi tới root.mainloop() và mã đó có thể tương tác với các tiện ích (ví dụ: nhận giá trị từ tiện ích mục nhập).

Gọi root.destroy() sẽ hủy tất cả các tiện ích và thoát khỏi vòng lặp chính. Bất kỳ mã nào sau khi cuộc gọi đến root.mainloop() sẽ chạy, nhưng bất kỳ nỗ lực nào để truy cập bất kỳ tiện ích nào (ví dụ: nhận giá trị từ tiện ích con nhập) sẽ không thành công do tiện ích không còn tồn tại nữa.

Các vấn đề liên quan