亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在類框架內創建多個小部件

在類框架內創建多個小部件

森欄 2022-08-25 15:50:16
在簡單地嘗試組織我的代碼時,我在網上發現,在需要時將大部分代碼放入類中似乎是最好的。因此,在這樣做的過程中,我認為我將嘗試創建一個 with 和 方法。frame classcreate_labelscreate_buttons我的目標是能夠創建2個或更多個風格相似的獨立框架(因此,為什么我發現最好制作一個框架類)。然后,使用方法創建標簽,按鈕和其他小部件,并允許它們在各自的框架內輕松移動。這是我的代碼:import tkinter as tkwindow = tk.Tk()class MyFrame(tk.Frame):    def __init__(self, parent, **kwargs):        tk.Frame.__init__(self, parent)        self.parent = parent        self.layout(**kwargs)    def labels(self, text, **kwargs):        tk.Label.__init__(self, text=text)        self.layout(**kwargs)    def buttons(self, text, command, **kwargs):        tk.Button.__init__(self, text=text, command=command)        self.layout(**kwargs)    def layout(self, row=0, column=0, columnspan=None, row_weight=None, column_weight=None, color=None, sticky=None, ipadx=None, padx=None, ipady=None, pady=None):        self.grid(row=row, column=column, columnspan=columnspan, sticky=sticky, ipadx=ipadx, padx=padx, ipady=ipady, pady=pady)        self.grid_rowconfigure(row, weight=row_weight)        self.grid_columnconfigure(column, weight=column_weight)        self.config(bg=color)frame_1 = MyFrame(window, row=0, column=0, sticky="news", color="pink")frame_1.buttons("Btn_1/Frme_1", quit, row=0, column=0)frame_1.buttons("Btn_2/Frme_1", quit, row=0, column=1)frame_2 = MyFrame(window, row=1, column=0, sticky="news", color="green")frame_2.buttons("Btn_1/Frme_2", quit, row=0, column=0)frame_2.buttons("Btn_2/Frme_2", quit, row=0, column=1)window.grid_columnconfigure(0, weight=1)window.grid_columnconfigure(1, weight=1)window.grid_rowconfigure(1, weight=1)window.grid_rowconfigure(0, weight=1)window.mainloop()現在我認為我的一個問題是在期間,因為每幀應該有2幀和2個按鈕。但是,沒有錯誤,這使得很難確定這就是為什么只存在最新的按鈕和框架的原因。我甚至不認為這是一個框架或小部件“覆蓋”另一個框架或小部件的情況。我認為第二幀/小部件似乎覆蓋了第一幀/小部件。__init__ method任何幫助是值得贊賞的。
查看完整描述

1 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

問題出在您的函數上。兩個幀都在 和 上進行,因為您沒有將任何特定的行和列傳遞給函數。因此,可以看到幀的覆蓋layoutgridrow=0column=0

代碼中的另一個問題(可能)是 and 按鈕不屬于小部件,而是屬于根frame_1frame_2Framewindow


查看完整回答
反對 回復 2022-08-25
  • 1 回答
  • 0 關注
  • 74 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號