我已經創建了視窗,在那個視窗中我放置了框架。然后我想在按鈕小部件之后創建兩個標簽。但是,即使我將 btn 放在 row=2 中,并且 label2 在 row=1 中,按鈕小部件仍顯示在第二個標簽小部件上方。我很難理解為什么?
from tkinter import *
window=Tk()
window.geometry('620x540 33 33')
var_pg=StringVar()
var_pg.set('Page 001 placeholder')
class lbl_custom(Label):
def __init__(self,frame_window):
super().__init__()
self['width']=33
self['font']='Segoe 12'
frame_submit=Frame(window)
lbl_page_num01=Label(frame_submit,width=33,textvariable=var_pg,font='Segoe 12')
lbl_page_num02=lbl_custom(frame_submit)
lbl_page_num02['text']='Page 002 placeholder'
btn_submit=Button(frame_submit,width=33,relief=RAISED,text='submit')
frame_submit.grid(row=0,column=0)
lbl_page_num01.grid(row=0,column=0)
lbl_page_num02.grid(row=1,column=0)
btn_submit.grid(row=2,column=0)
window.mainloop()
現在,這是肯定的。由類繼承創建的每個標簽小部件都比按鈕下降,但網格占位符。但是,如果我將它創建為 Label() 類,它將高于按鈕。為什么會這樣?
uj5u.com熱心網友回復:
呼叫時必須傳遞父物件super,否則您的自定義物件將始終是根視窗的子物件。
class lbl_custom(Label):
def __init__(self,frame_window):
super().__init__(frame_window)
# ^^^^^^^^^^^^
您也可以傳遞其他選項,這將為您節省幾行代碼:
class lbl_custom(Label):
def __init__(self,frame_window):
super().__init__(frame_window, width=33, font=("Segoe 12",))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/532205.html
上一篇:如何在主體后放置一個按鈕:容器?
下一篇:消耗性浮動按鈕重定向到另一個活動
