Tkinter place() 布局


  • pack 按添加順序排列組件
  • grid 按行列形式排列組件
  • place 能夠實現自定義排列組件

 

place() 方法設置控件在窗體或窗口內的絕對地址或相對地址。

1. place()方法參數選項

1) anchor

此選項定義控件在窗體或窗口內的方位,可以是N、NE、E、SE、S、SW、W、NW或 CENTER。默認值是 NW,表示在左上角方位。

2) bordermode

此選項定義控件的坐標是否要考慮邊界的寬度。此選項可以是 OUTSIDE 或 INSIDE,默認值是 INSIDE。

3) height

此選項定義控件的高度,單位是像素。

4) width

此選項定義控件的寬度,單位是像素。

5) in(in_)

此選項定義控件相對於參考控件的位置。若使用在鍵值,則必須使用 in_。

6)relheight

此選項定義控件相對於參考控件(使用 in_選項)的高度。

7) relwidth

此選項定義控件相對於參考控件(使用 in_選項)的寬度。

8) relx

此選項定義控件相對於參考控件(使用 in_選項)的水平位移。若沒有設置 in_選項,則是相對於父控件。

9)rely

此選項定義控件相對於參考控件(使用 in_選項)的垂直位移。若沒有設置 in_選項,則是相對於父控件。

10) x

此選項定義控件的絕對水平位置,默認值是 0。

11) y

此選項定義控件的絕對垂直位置,默認值是 0。

2. place()方法應用實例

下面的示例是使用 place() 方法創建兩個按鈕。第一個按鈕的位置在距離窗體左上角的 (40,40) 坐標處,第二個按鈕的位置在距離窗體左上角的 (140, 80) 坐標處。按鈕的寬度均為 80 像素,高度均為 40 像素。

#place()方法 from tkinter import * #主窗口 win = Tk() #創建窗體 frame = Frame (win, relief=RAISED, borderwidth=2, width=400, height=300) frame. pack (side=TOP, fill=BOTH,ipadx=5, ipady=5, expand=1) #第一個按鈕的位置在距離窗體左上角的(40,40)坐標處 button1 = Button ( frame, text="Button 1") button1.place (x=40,y=40, anchor=W, width=80, height=40) #第二個按鈕的位置在距離窗體左.上角的(140,80) 坐標處 button2 = Button (frame, text="Button 2") button2 .place(x=140,y=80, anchor=W, width=80, height=40) #開始窗口的事件循環 win. mainloop()

保存 demo1.pyw 文件后,直接雙擊運行該文件,結果如圖 1 所示:

程序運行結果
圖1: 程序運行結果

示例代碼分析如下:

    • 第 6 行:創建一個 Frame 控件,以作為窗體。此窗體的外形突起,邊框厚度為 2 像素。窗體的寬度是 400 像素,高度是 300 像素。
    • 第 7 行:此窗體在窗口的頂端(side=TOP),當窗口改變大小時,窗體會占滿整個窗口的剩余空間(fill=BOTH)。widget 與窗體邊界之間的水平距離是5像素,垂直距離是 5 像素。
    • 第 13~11 行:創建第一個按鈕。位置在距離窗體左上角的(40, 40)坐標處,寬度是 80 像素,高度是 40 像素。
    • 第 14~15 行:創建第二個按鈕。位置在距離窗體左上角的(140, 80)坐標處,寬度是 80 像素,高度是 40 像素。

 

 

https://www.cnblogs.com/yang-2018/p/11791906.html

https://blog.csdn.net/nilvya/article/details/106148018

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM