column1 = [
('H', 'Hydrogen', 'Atomic # = 1\nAtomic Weight =1.01\nState = Gas\nCategory = Alkali Metals'),
('Li', 'Lithium', 'Atomic # = 3\nAtomic Weight = 6.94\nState = Solid\nCategory = Alkali Metals'),
('Na', 'Sodium', 'Atomic # = 11\nAtomic Weight = 22.99\nState = Soild\nCategory = Alkali Metals'),
('K', 'Potassium', 'Atomic # = 19\nAtomic Weight = 39.10\nState = Solid\nCategory = Alkali Metals'),
('Rb', 'Rubidium', 'Atomic # = 37\nAtomic Weight = 85.47\nState = Solid\nCategory = Alkali Metals'),
('Cs', 'Cesium', 'Atomic # = 55\nAtomic Weight = 132.91\nState = Solid\nCategory = ALkali Metals'),
('Fr', 'Francium', 'Atomic # = 87\nAtomic Weight = 223.00\nState = Solid\nCategory = Alkali Metals')]
#create all buttons with a loop
r = 1
c = 0
for b in column1:
tk.Button(self,text=b[0],width=5,height=2, bg="grey",command=lambda text=b[1]:self.name(text)).grid(row=r,column=c)
r += 1
if r > 7:
r = 1
c += 1
。。。你知道吗
def name(self, text):
self.topLabel.config(text=text)
def info(self, text):
self.infoLine.config(text=text)
我想使用这些元组,将第二个位置(元素名)发送到name()函数(我目前拥有并正在使用),将第三个位置(所有元素信息)发送到info()函数,并将它们打印出来,但它们将位于不同的位置。不管我怎么努力,我似乎都做不到。你能用元组把多个东西发送到不同的函数吗?你知道吗
在您创建按钮的那一行,您可以使用(愚蠢的)lambda技巧来实现这一点:
或者定义一个单独的函数来调用:
相关问题 更多 >
编程相关推荐