Tôi có một Khung chính (gọi là a
) và một Toplevel bật lên (gọi là b
). Làm cách nào để đảm bảo người dùng không thể nhấp vào bất kỳ thứ gì trong số a
trong khi b
là "còn sống"?Vô hiệu hóa cửa sổ bên dưới khi cửa sổ bật lên được tạo trong Python TKinter
8
A
Trả lời
18
Nếu bạn không muốn ẩn thư mục gốc nhưng chỉ cần đảm bảo người dùng chỉ có thể tương tác với cửa sổ bật lên, bạn có thể sử dụng grab_set()
và grab_release()
.
b.grab_set() # when you show the popup
# do stuff ...
b.grab_release() # to return to normal
Ngoài ra, bạn có thể withdraw()
gốc để làm cho nó vô hình:
a.withdraw()
sẽ rời khỏi gốc còn sống, nhưng chỉ b
nhìn thấy được.
Nếu bạn cần nó trở lại, bạn có thể làm
a.deiconify()
Chỉ cần để thêm vào câu trả lời của bạn, tôi tìm thấy các tài liệu về vấn đề này (sau khi một chút đào) ở đây: http://effbot.org/tkinterbook /tkinter-dialog-windows.htm – BlackSheep
Trong hầu hết các trường hợp, 'grab_release()' là không cần thiết. Nếu 'grab_set()' được sử dụng trên một cửa sổ, điều khiển sẽ tự động được giải phóng khi đóng cửa sổ. –