我正在創建一個小型 tkinter 應用程式,該應用程式需要多個輸入以用于不同的用途。它的 GUI 被分成帶有條目和按鈕的不同框架。到目前為止,我的每個標簽都具有相同的填充值,要錨定到西方,寬度相同。有沒有辦法為標簽設定全域樣式,而不是為每個新標簽再次復制/粘貼?
代碼是在離線機器上撰寫的,但看起來與此類似,為按鈕/條目保存代碼的其他方面。
from tkinter import *
root = Tk()
# frame 1
top_frame = LabelFrame(root, text = "File Checker")
top_frame.grid(row=0, column=0, padx=10, sticky="w")
pjt_title = Label(top_frame, text="Project Title:", anchor="w", width=13, padx=30).grid(row=0, column=0)
pjt_num = Label(top_frame, text="Project Number:", anchor="w", width=13, padx=30).grid(row=1, column=0)
pjt_ver = Label(top_frame, text="Project Version:", anchor="w", width=13, padx=30).grid(row=2, column=0)
# frame 2
mid_frame = LabelFrame(root, text = "Programmer Information")
mid_frame.grid(row=1, column=0, padx=10, sticky="w")
pjt_title = Label(mid_frame, text="Project Title:", anchor="w", width=13, padx=30).grid(row=0, column=0)
pjt_num = Label(mid_frame, text="Project Number:", anchor="w", width=13, padx=30).grid(row=1, column=0)
# frame 3
bot_frame = LabelFrame(root, text = "Project Information")
bot_frame.grid(row=0, column=0, padx=10, sticky="w")
pjt_desc = Label(bot_frame, text="Project Descrption:", anchor="w", width=13, padx=30).grid(row=0, column=0)
pjt_lead = Label(bot_frame, text="Project Lead:", anchor="w", width=13, padx=30).grid(row=1, column=0)
pjt_date = Label(bot_frame, text="Project Start Date:", anchor="w", width=13, padx=30).grid(row=2, column=0)
pjt_cost = Label(bot_frame, text="Project Cost:", anchor="w", width=13, padx=30).grid(row=3, column=0)
root.mainloop()
uj5u.com熱心網友回復:
我們將相同的標簽選項放入字典中,然后將其解包到位。如果超過兩個或三個幾乎相同的小部件使用回圈。當創建小部件并使用幾何管理器將它們放置在同一行時,您會感到驚訝,我用 print 展示了它。在第一種情況下,你得到一個物件,在第二種情況下,沒有。
from tkinter import *
options = {'anchor': "w", 'width': 13, 'padx': 30}
root = Tk()
# frame 2
mid_frame = LabelFrame(root, text="Programmer Information")
mid_frame.grid(row=1, column=0, padx=10, sticky="w")
(pjt_title := Label(mid_frame, text="Project Title:", **options)).grid(row=0, column=0)
pjt_num = Label(mid_frame, text="Project Number:", **options).grid(row=1, column=0)
print(pjt_title)
print(pjt_num)
# frame 3
bot_frame = LabelFrame(root, text = "Project Information")
bot_frame.grid(row=0, column=0, padx=10, sticky="w")
text = ("Project Descrption:", "Project Lead:", "Project Start Date:", "Project Cost:")
for i in range(4):
Label(bot_frame, text=text[i], **options).grid(row=i, column=0)
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/492003.html
