我正在尝试检索保存在列表中的随机整数列表" self.buttons"。但是我无法成功访问它们
moveButton = 70
self.buttons = []
for i in range(5):
numberLabel = random.randint(-1000,1000)
self.buttons.append(Button(str(numberLabel), self))
self.buttons[i].setFixedSize(160, 80)
self.buttons[i].move(moveButton,200)
moveButton = moveButton + 160
self.buttons[i].show()
print(self.buttons)
当我尝试打印列表时,我得到了......
[<__main__.Frame object at 0x10b1d25f0>, <__main__.Frame object at 0x10b1d2680>, <__main__.Frame object at 0x10b1d2710>, <__main__.Frame object at 0x10b1d27a0>, <__main__.Frame object at 0x10b1d2830>]
相反,我希望整数在列表中打印! 任何帮助将非常感谢,TIA
答案 0 :(得分:0)
print (button.numberLabel for button in self.buttons)
我希望这对你有所帮助。
答案 1 :(得分:0)
输出正确。基本上你用print语句做的是打印“self.buttons”列表中的项目,这些项目恰好是Button类的对象。
您指定使用PyQT4框架,如果我错了,请更正我,但PyQT4不包含名为“Button”的类。假设您使用“import ... as”选项而不是“Button”表示“QPushButton”,则需要更改代码的最后一行:
for i in range(5):
numberLabel = random.randint(-1000,1000)
self.buttons.append(Button(str(numberLabel), self))
self.buttons[i].setFixedSize(160, 80)
self.buttons[i].move(moveButton,200)
moveButton = moveButton + 160
self.buttons[i].show()
print(self.buttons)
要:
for i in range(5):
numberLabel = random.randint(-1000,1000)
self.buttons.append(Button(str(numberLabel), self))
self.buttons[i].setFixedSize(160, 80)
self.buttons[i].move(moveButton,200)
moveButton = moveButton + 160
self.buttons[i].show()
print(self.buttons[i].text())
这样就不会在内存中打印对象的位置,而是打印text()函数的返回值。