python - 向 tk.Button 子类添加 kwarg 时出现问题
问题描述
我想在 tk.Button 子类中添加一个 kwarg。这个想法是我希望能够为这个子类的每个按钮添加一个数字,并且以后能够调用该数字。
import tkinter as tk
class Test(tk.Tk):
def __init__(self, tasks=None):
super().__init__()
self.title("Test")
self.geometry("400x600")
self.container = tk.Frame(self)
self.container.pack()
self.button1 = My_buttons(self.container, text="Button 1", number=1).grid(row=0, column=0)
print(self.button1.index) #here is where I would like to be able to print 1
class My_buttons(tk.Button):
def __init__(self, parent, *args, **kwargs):
super(My_buttons, self).__init__(parent, *args, **kwargs)
self.number = kwargs.pop("number")
if __name__ == "__main__":
test = Test()
test.mainloop()
以上只是告诉我我有一个“_tkinter.TclError:未知选项“-number””错误。任何帮助将不胜感激!谢谢!
解决方案
在My_buttons
课堂上,移动self.number = kwargs.pop("number")
到呼叫之前super()
。这样您就不会将number
关键字参数传递给Button
构造函数。
另外,您应该拆分:
self.button1 = My_buttons(self.container, text="Button 1", number=1).grid(row=0, column=0)
进入:
self.button1 = My_buttons(self.container, text="Button 1", number=1)
self.button1.grid(row=0, column=0)
我猜,替换print(self.button1.index)
为print(self.button1.number)
.
推荐阅读
- angular6 - angular6:material-nav 组件创建构建错误“属性‘isHandset$’不存在于类型‘AppComponent’上。”
- css - 水平居中 Font Awesome 图标和文本
- php - 返回嵌套数组键名而不是索引
- ios - UiCollectionView 间距问题 - 快速
- java - 403 响应代码 - 输入正确?
- javascript - 如何在函数内的 onclick 函数中访问它?
- gradle - 在 Intellij/Gradle 中创建包含源代码和测试的平面目录结构?
- python - 将年份和月份名称转换为 pandas 数据框的日期时间列
- python - 如何使用 odoo-xml-rpc 一次在 ODOO 中创建多个值?
- java - 图像在移动时有奇怪的行为?