如何在Tkinter中顯示和隱藏小部件?我想有一個輸入框,但不是一直顯示。有人能讓我看到在tkinter中顯示和隱藏輸入小部件和其他小部件的功能嗎?我希望能夠在沒有多個框架的情況下做到這一點。顯示和隱藏小部件
顯示和隱藏小部件
回答
This has been answered before on stackoverflow。簡短的回答是,你可以使用grid_remove,如果它以前是通過網格添加的,這會導致該小部件被刪除。 grid_remove
會記住小部件的位置,因此簡單的grid()
會將其重新放回,而無需重新指定所有選項。
您還可以使用pack_forget(如果使用包)和grid_forget(如果使用網格)。這些工作與grid_remove類似,只是它們會導致所有設置被遺忘,這意味着您必須將其明確地放回到屏幕的適當位置。
另一種選擇是利用小部件的堆疊順序。您可以使用lower方法將小部件隱藏在其父項的後面,並使用lift將其上移。例如,參見this answer。
我嘗試了其他人發佈的建議,並注意到我犯了一個簡單的錯誤。您不能在宣佈要隱藏的小部件的同一行上調用.grid()
。
爲了澄清,我以前有這樣的:
self.helpExpansion = ttk.Label(self.helpMenu, text="Expansion Widget").grid(row=1, column=3, sticky=EW)
self.helpExpansion.grid_remove()
但我得到了錯誤AttributeError: 'NoneType' object has no attribute 'grid_remove'
。爲了解決這個問題,我不得不撥打電話到.grid()
在新行,像這樣:
self.helpExpansion = ttk.Label(self.helpMenu, text="Help Expansion")
self.helpExpansion.grid(row=1, column=3, sticky=EW)
self.helpExpansion.grid_remove()
然後在顯示和隱藏之間切換,我只是輪流調用self.helpExpansion.grid()
(不需要函數參數)和self.helpExpansion.grid_remove()
之間。
對我來說,它與tk.Label
或ttk.Label
一起工作。我正在使用Python 2.7.13
。希望有所幫助!
原因在於,不是將label引用分配給self.helpExpansion,而是將調用的返回值分配給grid(),它返回None。將調用添加到對窗口構造函數的調用中是一種方便的簡寫形式,但前提是您稍後不需要對該窗口小部件的引用(例如固定標籤,或者當您通過特殊的tk變量或通過回調)。 – DrEsperanto 2018-03-09 23:22:24
- 1. 如何在DockLayoutPanel中顯示和隱藏小部件?
- 2. 在KivyMD中動態隱藏和顯示小部件
- 3. 隱藏測量小部件和單選按鈕檢查顯示
- 4. 使用pySide動態顯示和隱藏標籤小部件
- 5. 部分顯示和隱藏DIV
- 6. jQuery隱藏和顯示部門
- 7. ng-include部分隱藏和顯示
- 8. Qt顯示/隱藏部件動畫
- 9. C++動態顯示或隱藏FLTK小部件?
- 10. 如何動態隱藏/顯示小部件?
- 11. Kendo通知小部件隱藏並顯示多次
- 12. 隱藏/顯示yaxis系列隱藏/顯示事件
- 13. 隱藏和顯示在jquery
- 14. jQuery顯示和隱藏div
- 15. jQuery的顯示和隱藏
- 16. 隱藏和顯示UIButtons
- 17. jqgrid隱藏和顯示行
- 18. 隱藏和顯示的AdView
- 19. 顯示和隱藏塊js。
- 20. 隱藏和顯示內容
- 21. 顯示和隱藏類(onClick)
- 22. 顯示和隱藏點擊
- 23. 隱藏和顯示圖像
- 24. jquery隱藏和顯示
- 25. javascript - 顯示和隱藏
- 26. JQuery隱藏和顯示
- 27. 顯示和隱藏的UIButton
- 28. 顯示和隱藏標籤
- 29. 隱藏和顯示領域
- 30. 顯示一個隱藏和顯示部分一次使用jquery
我認爲,有你的問題的答案 - http://stackoverflow.com/questions/3819354/in-tkinter-is-there-any-way-to-make-a-widget-not-visable – 2012-04-22 11:29:40