Làm cách nào để hiển thị và ẩn các tiện ích trong Tkinter? Tôi muốn có một hộp nhập cảnh, nhưng không có nó được hiển thị ở tất cả các lần. Ai đó có thể chỉ cho tôi các chức năng hiển thị và ẩn các tiện ích con và các vật dụng khác trong tkinter không? Tôi muốn có thể làm điều này mà không cần phải có nhiều khung hình.Hiển thị và Ẩn các tiện ích
Trả lời
This has been answered before on stackoverflow. Câu trả lời ngắn gọn là, bạn có thể sử dụng grid_remove, điều này sẽ khiến tiện ích bị xóa nếu được thêm vào trước đó qua lưới. grid_remove
nhớ vị trí của tiện ích, vì vậy, grid()
đơn giản sẽ đưa nó trở lại mà không cần phải chỉ định lại tất cả các tùy chọn.
Bạn cũng có thể sử dụng pack_forget (nếu sử dụng gói) và grid_forget (nếu sử dụng lưới). Những công việc này tương tự như grid_remove ngoại trừ chúng khiến tất cả các thiết lập bị lãng quên, có nghĩa là bạn phải đặt nó trở lại vị trí thích hợp trên màn hình một cách rõ ràng.
Một tùy chọn khác là tận dụng thứ tự xếp chồng của các tiện ích con. Bạn có thể sử dụng phương thức lower để ẩn tiện ích con đằng sau tiện ích con và lift để tăng tiện ích ở trên. Xem this answer để biết ví dụ.
Tôi đã thử các đề xuất mà người khác đã đăng và nhận thấy rằng tôi đã mắc lỗi đơn giản. Bạn không thể gọi số .grid()
trên cùng một dòng mà bạn khai báo tiện ích con bạn sẽ ẩn.
Để làm rõ, tôi trước đây đã này:
self.helpExpansion = ttk.Label(self.helpMenu, text="Expansion Widget").grid(row=1, column=3, sticky=EW)
self.helpExpansion.grid_remove()
Nhưng tôi đã nhận lỗi AttributeError: 'NoneType' object has no attribute 'grid_remove'
. Để khắc phục nó, tôi đã phải thực hiện cuộc gọi đến .grid()
trên một dòng mới, như thế này:
self.helpExpansion = ttk.Label(self.helpMenu, text="Help Expansion")
self.helpExpansion.grid(row=1, column=3, sticky=EW)
self.helpExpansion.grid_remove()
Sau đó, để chuyển đổi giữa hiển thị và ẩn nấp, tôi chỉ xen kẽ giữa gọi self.helpExpansion.grid()
(đối số chức năng không cần thiết) và self.helpExpansion.grid_remove()
.
Đối với tôi, nó đã hoạt động với cả hai kiểu tk.Label
hoặc ttk.Label
. Tôi đang sử dụng Python 2.7.13
. Hy vọng rằng sẽ giúp!
lý do cho điều này là thay vì gán tham chiếu Label cho self.helpExpansion, bạn thực sự gán giá trị trả về của cuộc gọi đến grid(), trả về None. Thêm lời gọi tới grid() vào cuộc gọi đến một hàm tạo widget là một cách viết tắt thuận tiện, nhưng chỉ khi bạn không cần tham chiếu đến tiện ích đó sau (chẳng hạn như nhãn cố định hoặc khi bạn tương tác với tiện ích con thông qua một trong các biến tk đặc biệt hoặc thông qua gọi lại). – DrEsperanto
- 1. Qt Hiển thị/Ẩn hình động của tiện ích con
- 2. Cách ẩn động/hiển thị tiện ích con?
- 3. PyQt - hiển thị tiện ích ở đầu tiện ích
- 4. Tiện ích mở rộng của Chrome: Ẩn và hiển thị biểu tượng tác vụ trình duyệt
- 5. Wordpress - hiển thị tiện ích cụ thể
- 6. Qt: Cập nhật các tiện ích con bị ẩn trước khi chúng được hiển thị?
- 7. Thay đổi hiển thị tiện ích con trên nhấp chuột
- 8. JTable ẩn và hiển thị các cột
- 9. Cách hiển thị tiện ích bên trong cửa sổ chính
- 10. Qt: hiển thị hình ảnh trên tiện ích
- 11. QWidget :: mapToGlobal() khi tiện ích không hiển thị
- 12. Ẩn và hiển thị linearlayout
- 13. Tiện ích Windows trong WPF - hiển thị khi "Hiển thị màn hình" được kích hoạt
- 14. Div hiển thị/ẩn truy vấn phương tiện
- 15. Loại tiện ích mở rộng và thành viên hiển thị trong F #
- 16. Cách đọc và hiển thị tệp trong tiện ích mở rộng của chrome
- 17. Highcharts: Ẩn và hiển thị chú thích
- 18. Ẩn Jquery animate và hiển thị
- 19. PyQt4: Cửa sổ hiển thị ở vị trí khác sau khi ẩn() và hiển thị()
- 20. QDir.setNameFilter cách chỉ hiển thị các tệp có tiện ích mở rộng cụ thể?
- 21. Làm cách nào để buộc Facebook JS-SDK hiển thị các tiện ích được thêm động?
- 22. Kiểm tra để hiển thị trong kiểm tra QUnit của tiện ích JQueryUI
- 23. LibGDX và ScrollPane với nhiều tiện ích
- 24. Tại sao jQuery hiển thị/ẩn hiển thị sử dụng: không hiển thị thay vì hiển thị: bị ẩn?
- 25. Ẩn tiện ích ứng dụng tùy thuộc vào cấp API
- 26. Tại sao một số thành phần tiện ích không hiển thị khi được nhúng trong iBook?
- 27. cài đặt hiển thị so với ẩn/hiển thị
- 28. Cách hiển thị nhiều tiện ích trên cùng một trang bằng cách sử dụng MVC
- 29. Tiện ích WPF hữu ích
- 30. Asp.net MVC Hiển thị/ẩn
Tôi nghĩ, có câu trả lời cho câu hỏi của bạn - http://stackoverflow.com/questions/3819354/in-tkinter-is-there-any-way-to-make-a-widget-not-visable –