Python Tkinter – 如何將一個 topLevel() 控制元件相對於根視窗定位?
在 Tkinter 中,toplevel 控制元件用於建立彈出模態視窗。由 toplevel 視窗建立的彈出視窗與 tkinter 應用程式的預設視窗類似。它可以擁有控制元件,例如 文字控制元件、按鈕控制元件、畫布控制元件、框架 等。
toplevel 視窗的大小和位置可以透過使其在整個螢幕中靈活自如來決定。在 toplevel 視窗中,所有控制元件始終放置在其他視窗之上。
您可以使用 root.winfo_x() 和 root.winfo_y() 來獲取根視窗的位置。然後,您可以使用 geometry 方法將 toplevel 控制元件相對於根視窗定位。使 toplevel 控制元件相對於根視窗定位可以防止兩個視窗重疊並將其分開。我們舉個例子來演示它如何工作。
示例
# Import the required libraries from tkinter import * # Create an instance of tkinter frame or window win = Tk() # Set the size of the window win.geometry("700x300") win.title("Root Window") # Create a toplevel window top = Toplevel(win) top.geometry("400x200") # Create a Label in the toplevel widget Label(top, text= "This is a Toplevel window", font="Calibri, 12").pack() x = win.winfo_x() y = win.winfo_y() top.geometry("+%d+%d" %(x+200,y+200)) # Keep the toplevel window in front of the root window top.wm_transient(win) top.mainloop()
輸出
執行以上程式碼將顯示一個除了主視窗之外的 toplevel 視窗。
廣告