首頁 > 軟體

python tkinter中的錨點(anchor)問題及處理

2022-06-20 22:02:03

tkinter的錨點(anchor)問題

tkinter中anchor引數

(注意,引數的英文都是小寫)

字母方位
n
s
w西
e
center中心
nw西北
ne東北
sw西南
se東南
from tkinter import *
from tkinter import messagebox as box
def main_menu():
    window = Tk()
    window.title('Juke Box')
    window.geometry('800x480')
    window.configure(background = 'black')
    label = Label(window, text = 'Juke-Box', fg = 'light green', bg = 'black', font = (None, 30), height = 2)
    label.pack(side = TOP)
    Jam = Button(window, text = 'The Jam', width = 25, height = 2)
    Jam.pack(pady = 10, padx = 25, anchor = 'n')
    Roses = Button(window, text = 'The Stone Roses', width = 25, height = 2)
    Roses.pack(pady = 10, padx = 25, anchor = 'w')
    Smiths = Button(window, text = 'The Smiths', width = 25, height = 2)
    Smiths.pack(pady = 10, padx = 25, anchor = 'w')
    Wedding = Button(window, text = 'The Wedding Pressent', width = 25, height = 2)
    Wedding.pack(pady = 10, padx = 25, anchor = 'w')
    Blondie = Button(window, text = 'Blondie', width = 25, height = 2)
    Blondie.pack(pady = 10, padx = 25, anchor = 'w')
    Clash = Button(window, text = 'Clash', width = 25, height = 2)
    Clash.pack(pady = 10, padx = 25, anchor = 'w')
    Madness = Button(window, text = 'Madness', width = 25, height = 2)
    Madness.pack(pady = 10, padx = 25, anchor = 'n')
    Pistols = Button(window, text = 'The Sex Pistols', width = 25, height = 2)
    Pistols.pack(pady = 10, padx = 25, anchor = 'n')
    window.mainloop()
main_menu()

幾何管理方法place中anchor的含義

關於place的用法,重點在於理解anchor的用法。

在一個大矩形中準確地定義一個小矩形(有面積,不是點)的位置,需要知道三個資訊:一是座標系定義,二是座標資料,三是要在小矩形上指定一個定位點。原點和座標系完全是系統預設的定義方式,即原點在master控制元件的左上角,向右向下為正。

座標資料以相對形式給出,取0到1之間的浮點數。如果取0,則參考點橫座標為0(在最左側),如果取1,則參考點橫座標為master控制元件的最右側,縱座標也是如此。

定位點anchor的定義,這個是最終定位的關鍵。如圖:

如圖,定義位置時,以master控制元件的左上角為原點,以給定的相對座標(這裡都是0.5)指定位置。

每個控制元件都有9個anchor,選一個作為“把手”,將這個“把手”安放在指定位置即可。

anchor='nw’的含義是“將控制元件的左上角安放在指定位置”。

再如:

anchor='n’的含義是“將控制元件的上邊中點安放在指定位置”,其他的anchor同理。這可能就是為什麼很多python技術檔案中,習慣先指定座標,最後再選擇anchor。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com