大家好,希望你們做得很好,我不明白如何在 Tkinter 中創建一個新視窗,例如當我按下一個類似于訊息框的按鈕時,我的意思是創建一個新視窗,我無法回傳上一個/主視窗,直到我關閉或在新視窗中按確定。如何簡單地創建一個新視窗并且用戶不能單擊主視窗并且在關閉它之前不能離開,就像在訊息框中發生的那樣?謝謝!這是一個基本的起始代碼,如何將我正在談論的這個視窗系結到按鈕?
from tkinter import *
window = Tk()
window.geometry("300x300")
button = Button(window,text="Click here")
button.pack()
window.mainloop()
uj5u.com熱心網友回復:
這種控制應用程式的對話框稱為“模態對話框”。可以使用grab_set方法來實作。
from tkinter import *
def new_window():
def close_window():
dialog.grab_release()
dialog.destroy()
dialog = Toplevel(window)
close = Button(dialog,text="close",command=close_window)
close.pack()
dialog.grab_set()
window = Tk()
window.geometry("300x300")
button = Button(window,text="Click here",command=new_window)
button.pack()
window.mainloop()
當您按“單擊此處”時,此代碼會創建一個新的頂層視窗。該對話框將抓取當前應用程式的所有事件,直到您單擊將釋放抓取的關閉按鈕。
uj5u.com熱心網友回復:
編輯
正如@scotty3785 上面提到的,您可以使用該grab_set()方法將焦點保持在頂層視窗上。但是根視窗仍然是可拖動的。但是閱讀檔案,我遇到了grab_set_global()方法。
w.grab_set_global() 小部件 w 抓取整個螢屏的所有事件。這被認為是不禮貌的,只應在非常需要時使用。任何其他有效的抓取都會消失。
參考:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/468253.html
標籤:tkinter
上一篇:使用Pillow將tkinter畫布“匯出”為.png并導致解析度極低
下一篇:Tkinter拖放滑鼠指標問題
