所以我的问题是,我试图将一个对象列表链接到一个treeview列表,这样当用户单击树中的一行时,他就可以得到关于这个对象的所有信息。你知道吗
下面是生成对象的代码:
class CHARACTER:
def __init__(self, name, surname, age, sexe, pragmatism,
courage, intelligence, shyness, happiness, fear, hunger,
comfort, feeling, companion, father, mother, kids,
brothers_sisters, friends, compatibility):
self.name = name
self.surname = surname
self.age = age
self.sexe = sexe
self.pragmatism = pragmatism
self.courage = courage
self.intelligence = intelligence
self.shyness = shyness
self.happiness = happiness
self.fear = fear
self.hunger = hunger
self.comfort = comfort
self.feeling = feeling
self.companion = companion
self.father = father
self.mother = mother
self.kids = kids
self.brothers_sisters = brothers_sisters
self.friends = friends
self.compatibility = compatibility
characters = []
sexe = ["Male", "Female"]
potential_husbands = []
potential_wives = []
potential_kids = []
mname = ["John", "Mike", "Albert", "Henry", "Patrick", "Francis",
"Robert", "Simon", "Charles", "Charlie", "Connor", "Adam", "Blake",
"Steven", "Edward", "Andrew", "Joe", "Gregory", "Brian", "Anthony",
"Frank", "Billy", "Boris", "Edgar", "Elliott", "Erik", "Liam", "Kyron",
"Ned", "Neil", "Ricky", "Ross", "Rich", "Roy", "Preston", "William",
"Vladimir", "Zach", "Wyatt", "Tylor", "Thomas", "Spike"]
fname = ["Alessia", "Ally", "Bridgette", "Callie", "Jessica",
"Debora", "Diana", "Elizabeth", "Clair", "Fran", "Hannah",
"Helene", "Marie", "Laura", "Leslie", "Leyla", "Kiley",
"Margaret", "Lola", "Maryjane", "Megan", "Rose", "Sofia",
"Samantha", "Teresa", "Yolanda", "Teri", "Vicky", "Tricia",
"Rose", "Rita", "Nita", "Paola", "Penelope", "Polly",
"Nathalie", "Melody", "Morgane"]
lname = ["Smith", "Johnson", "Williams", "Jones", "Brown", "Miller",
"Moore", "Taylor", "Thomas", "White", "Harris", "Thompson", "Garcia",
"Allen", "Lewis", "Hall", "Young", "Clark", "Hill", "Lopez", "Carter",
"Turner", "Collins", "Evans", "Campbell", "Nelson", "Parker", "Green",
"Black", "Green", "Lee", "Martin"]
"""
Generates 20 random characters with stats
"""
def characters_creation():
for i in range(20):
character = CHARACTER(random.choice(lname),
random.choice(mname), random.randint(1,50),
random.choice(sexe), random.randint(1,20), random.randint(1,20),
random.randint(1,20), random.randint(1,20),
random.randint(1,20), random.randint(1,20),
random.randint(1,20), random.randint(1,20), {}, [], [], [],
[], [], [], {})
characters.append(character)
我的树视图的代码是:
class CTABLE:
def __init__(self, master):
self.charactersTable = ttk.Treeview(master, selectmode="browse")
self.charactersTable["show"] = "headings"
self.charactersTable["columns"]=("Name", "Surname", "Hunger",
"Fear", "Comfort", "Hapiness")
self.charactersTable.column("Name", width=100, anchor=E)
self.charactersTable.heading("Name", text="Name")
self.charactersTable.column("Surname", width=100, anchor=E)
self.charactersTable.heading("Surname", text="Surname")
self.charactersTable.column("Hunger", width=100, anchor=E)
self.charactersTable.heading("Hunger", text="Hunger")
self.charactersTable.column("Fear", width=100, anchor=E)
self.charactersTable.heading("Fear", text="Fear")
self.charactersTable.column("Comfort", width=100, anchor=E)
self.charactersTable.heading("Comfort", text="Comfort")
self.charactersTable.column("Hapiness", width=100, anchor=E)
self.charactersTable.heading("Hapiness", text="Hapiness")
for character in characters:
self.charactersTable.insert("", "end", values=(character.surname, character.name,
character.hunger, character.fear, character.comfort,
character.happiness))
self.charactersTable.bind("<Double-1>", self.CTClick)
self.charactersTable.grid(row=1, rowspan=3, column=1)
def CTClick(self, event):
item = self.charactersTable.selection()[0]
item = int(item[1:])
print characters[item-1].surname
print characters[item-1].name
因此,代码获取每行的id,并将其与“字符列表”中的字符相关联。你知道吗
现在我的问题是,由于某种原因,一旦我到达第10行,程序就开始用字母命名其他行,而不是继续。你知道吗
所以ID列表是这样的:
Python treeview list 你可以在控制台的背面看到如果我一行接一行地点击每一行会发生什么。Python在几行中切换到9之后的字母,然后返回正常计数。。。。你知道吗
我怎样才能解决这个问题?有没有办法手动分配一个新的id?你知道吗
好吧,我找到了答案:
将十六进制值转换成十进制值(如果有人遇到同样的问题)
相关问题 更多 >
编程相关推荐