如何建立一個對話框,從父窗口中取消焦點並強制用戶輸入?除非用戶提供輸入或按下取消按鈕,否則父窗口將無法訪問。所以這是一個消息框,但有一個輸入字段。我發現頂級方法來創建一個頂級窗口,但我找不到方法來阻止用戶訪問父窗口。謝謝阻止用戶改變焦點(Tkinter)
回答
我不是很積極,但是看起來好像你從TopLevel
繼承了一個新類,但是把它附加到父母身上,然後打電話self.transient(parent)
你應該有一些東西接近你想要的東西。我假設它也會阻止輸入到父窗口。
主要的技巧是在構造函數中完成的;首先,使用瞬態 將此窗口與父窗口(通常是啓動對話框的應用程序 窗口)相關聯。該對話框不會在窗口管理器中顯示爲 作爲圖標(例如,它不會出現在Windows下的任務欄 中),並且如果您將父窗口圖標化,則 對話框也將被隱藏
使該窗口短暫不整的解決方案。一個強調焦點的窗口被稱爲「模態」窗口。關鍵是「grab_set()」方法。您可以使用強制應用程序焦點的模式窗口,或者強制整個窗口系統的焦點。
你可以找到更多,當你谷歌的「Tkinter」結合「模態」。一擊:http://tkinter.unpythonic.net/wiki/ModalWindow
似乎更完整的解決方案。 +1 – TankorSmash
在pythonware文檔的[Chapter 10. Dialog Windows](http://www.pythonware.com/library/tkinter/introduction/dialog-windows.htm)開頭附近,有一些關於'grab_set( )'方法。還有更多有用的信息,包括創建自己的對話框時可以繼承的對話支持類「Dialog」。 – martineau
- 1. 阻止用戶更改URL
- 2. 當焦點改變
- 3. 阻止WPF文本框失去焦點
- 4. 阻止焦點以外的動畫
- 5. 阻止用戶
- 6. 阻止用戶
- 7. 焦點事件改變了?
- 8. 改變焦點適配器
- 9. 改變EditText焦點邊框
- 10. 改變焦點,x軸
- 11. Tkinter的主窗口焦點
- 12. tkinter給窗口焦點
- 13. 阻止用戶通過在節點JS
- 14. 阻止用戶點擊MVC2中的html.routelink?
- 15. 停止偷取焦點而不阻止組合框打開
- 16. 阻止Alexa用戶
- 17. 調用setVisibility時不改變焦點(View.VISIBLE)
- 18. 禁用tkinter小部件的焦點?
- 19. 防止tkinter條目獲取焦點時,其相關的StringVar更改
- 20. 如何阻止Windows應用程序盜取焦點
- 21. 在autopostback上停止焦點更改= true
- 22. wxPython的防止按Ctrl +從改變焦點
- 23. 警報防止事件的內容與實際改變焦點
- 24. 停止按鈕變得焦點
- 25. 防止元素變得焦點
- 26. 點擊更改URL時阻止href =#。
- 27. 焦點防止onclick
- 28. Rails Authlogic阻止用戶更改其登錄名/用戶名
- 29. CSS阻止菜單改變位置
- 30. Tkinter主循環阻止效果
這似乎是一個解決方案。謝謝! – Andrew
@Andrew:如果你認爲值得接受,那麼也習慣於對你接受的答案投票。 – martineau
@馬蒂諾他馬上就做了,其他人也冷落了。或者我猜他收回了他的upvote。丟失2代表,如果這是任何跡象。無論哪種方式,其他答案都更好。不知道自從礦山已經接受之後是否應該鞏固這兩者。 – TankorSmash