You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

基于OOP的Tkinter代码修改请求:将Button 1放置到第二个Frame中

解决方法:将按钮放入红色Frame中

没问题,我帮你调整这段Tkinter代码,实现把Button 1放到红色的frame_button里。这里有两个关键细节需要修正:

  • 注意Frame对象的赋值方式:原代码里直接把Frame(...).grid()赋值给self.frame_button,但grid()方法返回的是None,这样后续没法把按钮挂载到这个Frame上。得先创建Frame实例,再单独调用grid()布局。
  • 修改按钮的父容器:把Button的第一个参数从master改成self.frame_button,让按钮成为这个红色Frame的子组件。

修改后的完整代码如下:

from tkinter import *
root = Tk()
class Graphic():
    def __init__(self, master):
        self.colour = "blue"
        # 先创建Frame实例,再单独调用grid
        self.frame_input = Frame(master, height=100, width=100, bg="green")
        self.frame_input.grid(row=0, column=0)
        
        self.label_process = Label(master, width=30)
        self.label_process.grid(row=1, column=0)
        
        # 同样,先实例化红色Frame,再布局
        self.frame_button = Frame(master, height=100, width=100, bg="red")
        self.frame_button.grid(row=2, column=0)
        
        # 把按钮的父容器改成self.frame_button
        self.button = Button(self.frame_button, text="1", bg=self.colour)
        self.button.grid(row=0, column=0)

if '__main__' == __name__:
    grafic = Graphic(root)
    root.mainloop()

这样修改后,Button 1就会显示在红色的Frame里了。另外,建议你以后都采用“先创建组件实例,再单独调用布局方法”的方式,这样能避免因为布局方法返回None而导致的组件引用问题。

内容的提问来源于stack exchange,提问作者Student

火山引擎 最新活动