在使用 Tkinter 的輔助視窗中作業時,當我單擊 Messagebox 訊息的“確定”按鈕(正確記錄插入)時,該輔助視窗消失并隱藏在任務欄的底部。因此,立即在訊息框中單擊“確定”,我會自動在主視窗中找到自己。我沒有錯誤
當我單擊訊息框的“確定”按鈕時,如何不隱藏任務欄中的輔助視窗,然后留在輔助視窗中?我應該在“插入”中寫什么?
代碼視窗主要:
window=Tk()
window.title("main")
window.attributes('-zoomed', True)
代碼視窗輔助
from aaa import bbb
def form_secondary():
root = tk.Toplevel()
root.title("secondary")
root.geometry("1920x1080 0 0")
root.config(bg="white")
root.state("normal")
啟動 MessageBox 的函式
def insert():
if aaaa() == "" or bbbb.get() =="" or cccc.get() == "" or ddddd.get() == "" or eeee.get() == "" or fffff.get() == "":
messagebox.showerror("There is some empty field. Fill out all the fields")
return
db.insert(aaaa.get(), bbbb.get(), cccc.get(), ddddd.get(), eeee.get, fffff.get())
messagebox.showinfo("Record insert correctly ")
clearAll()
dispalyAll()
uj5u.com熱心網友回復:
通過使子視窗成為父視窗的臨時視窗,您可以將子視窗保持在其父視窗之上。
由于window(在主腳本中)和root(form_secondary()在另一個腳本中)視窗的創建在不同的腳本中,您不能直接參考windowinside form_secondary()。一種方法是將windowtoform_secondary()作為引數傳遞:
def form_secondary(parent):
root = tk.Toplevel(parent)
root.title("secondary")
root.geometry("1920x1080 0 0")
root.config(bg="white")
root.state("normal")
# make this window a transient window
root.transient(parent)
然后window在呼叫form_secondary()主腳本時作為引數傳遞:
...
window=Tk()
window.title("main")
window.attributes('-zoomed', True)
...
# assume it is called inside a function
def some_func():
...
form_secondary(window)
...
...
更新:如果它是通過選單項呼叫的,則使用lambda.
例如:
editmenu.add_command(label='Database', command=lambda: name.form_secondary(window))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/368884.html
