【问题标题】:Create Frame from Tkinter Button从 Tkinter 按钮创建框架
【发布时间】:2018-03-18 11:24:05
【问题描述】:

我的程序目前用作健身房追踪器,因此有一个显示用户日常活动的框架。然而,此刻我只有一个例程,因此为了能够创建多个例程,我需要一个按钮来为新例程创建一个框架。为此,我在第一帧上有一个按钮,该按钮链接到应该创建新帧的命令,但是它返回错误。这是代码:

 def AddRoutine(self, window):

    self.window = window
    window.state("zoomed")
    self.window.title('Routine')
    window.update_idletasks()

    h = self.window.winfo_height()
    w = self.window.winfo_width()
    Center_h = h/2
    Center_w = w/2

    self.newFr = Frame(window, bg = "PaleTurquoise1")
    self.RFrame.append(self.newFr)
    self.newFr.place(x = Center_w , y = Center_h, anchor = "center", width = 1024, height = 800)

我目前有一个列表RFrame,每次创建新帧时都会添加它,这样程序就知道它们有多少帧。

当我运行代码时,错误是TypeError: AddRoutine() missing 1 required positional argument: 'window' 但是我不知道这个错误是怎么来的。

【问题讨论】:

  • 也许你在调用函数时遗漏了参数
  • 肯定self.window = window是参数?
  • 调用函数时
  • self.btn_Add = Button(self.FrameRoutine, text = "Add Routine", bg = "PaleTurquoise1", font =("Arial", "16"), command = self.AddRoutine, width = 20) self.btn_Add.grid(row = 2, column = 0, columnspan = 3)
  • 但是,如果我包含窗口,那么它会在不按下按钮的情况下调用该函数。

标签: python tkinter window frame


【解决方案1】:
command = lambda:self.AddRoutine(window)

使用 tkinter Button 的参数调用函数

【讨论】:

    猜你喜欢
    • 2016-07-31
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 2018-05-05
    相关资源
    最近更新 更多