下面是我在Python tkinter中编写的代码。
{
coins: {
365Coin: {
id: 74,
tag: "365",
algorithm: "Keccak",
lagging: true,
listed: false,
status: "No available stats",
testing: false
},
Aiden: {
id: 65,
tag: "ADN",
algorithm: "Scrypt-OG",
lagging: true,
listed: false,
status: "No available stats",
testing: false
},
Adzcoin: {
id: 157,
tag: "ADZ",
algorithm: "X11",
lagging: false,
listed: false,
status: "Active",
testing: false
}
... [With various key representing the name of coins]
}
}
以下是错误
我在 init Traceback(最近一次调用最后一次): 我在Tab创作中 文件“C:/Path/FileName.py”,第26行,in ui.tabCreation() 在tabCreation中的文件“C:/Path/FileName.py”,第15行 self.tabControl.add(self.tab1,text =“select”) AttributeError:'UICreation'对象没有属性'tabControl'
请帮我解决这个问题。我做错了什么以及如何解决它
答案 0 :(得分:2)
您的def __init__(self):
print ("I m in __init__")
self.tabControl = ttk.Notebook(root)
self.tab1 = ttk.Frame(self.tabControl)
self.tab2 = ttk.Frame(self.tabControl)
方法应该是:
self.
您缺少每个属性的初始{{1}}。
答案 1 :(得分:1)
我们必须将tabcontrol
,tab1
,tab2
设置为自我并将其与自我一起使用
以下是问题的答案:
import tkinter as tk
from tkinter import *
from tkinter import ttk
root = Tk()
class UICreation():
def __init__(self):
print ("I m in __init__")
self.tabControl = ttk.Notebook(root)
self.tab1 = ttk.Frame(self.tabControl) #we must use self.tabControl
self.tab2 = ttk.Frame(self.tabControl) #we must use self.tabControl
def tabCreation(self):
print ("I M in Tab Creation")
self.tabControl.add(self.tab1 , text="select ")
self.tabControl.add(self.tab2, text="Add ")
self.tabControl.grid()
def checkBox(self):
print ("I M in checkBox")
CheckBox1 = Checkbutton(self.tab1, text="Check1")
CheckBox1.grid()
if __name__ == '__main__':
ui = UICreation()
ui.tabCreation()
ui.checkBox()
root.mainloop()
答案 2 :(得分:0)
UICreation
在实例化时从不接收root。修复self
以使其成为实例属性。
class UICreation():
def __init__(self, root): #add root here
print ("I m in __init__")
self.tabControl = ttk.Notebook(root)
self.tab1 = ttk.Frame(self.tabControl)
self.tab2 = ttk.Frame(self.tabControl)
def tabCreation(self):
print ("I M in Tab Creation")
self.tabControl.add(self.tab1 , text="select ")
self.tabControl.add(self.tab2, text="Add ")
self.tabControl.grid()
def checkBox(self):
print ("I M in checkBox")
CheckBox1 = Checkbutton(self.tab1, text="Check1")
CheckBox1.grid()
if __name__ == '__main__':
ui = UICreation(root) # call with root
ui.tabCreation()
ui.checkBox()
root.mainloop()
答案 3 :(得分:0)
您应该将tabControl
tab1
tab2
设置为self
。
def __init__(self):
print ("I m in __init__")
self.tabControl = ttk.Notebook(root)
self.tab1 = ttk.Frame(self.tabControl)
self.tab2 = ttk.Frame(self.tabControl)