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 視窗。

更新於: 16-Dec-2021

6K+ 次觀看

啟動您的 職業生涯

完成課程以獲得認證

開始學習
廣告