我在PyQt4中制作了多页面测验应用程序,我试图在最后添加得分摘要,因此它会计算出有多少正确和错误的答案。
为此我已经制作了列表,这就是我制作它的方式:
def scorecheck(self, sendercheck): # sendercheck object gets from which widget was signal sent.
wronganswers = []
correctanswers = []
if sendercheck == ( self.answ or self.answ1 ):
wronganswers.append(1)
if sendercheck == ( self.answ2 ):
correctanswers.append(1)
如何将wronganswers
长度放在QLabel中?
我试过这些:
self.wronganswerlabel = QtGui.QLabel(self)
self.wronganswerlabel.setText(len(wronganswers))
self.wronganswerlabel.setGeometry(200, 200, 200, 200)
self.wronganswerlabel.show()
给我这个错误:
self.wronganswer.setText(LEN(wronganswers))
TypeError:QLabel.setText(QString):参数1具有意外类型' int'
并且:
self.wronganswerlabel = QtGui.QLabel(self, "Score:".len(wronganswers))
self.wronganswerlabel.setGeometry(200, 200, 200, 200)
self.wronganswerlabel.show()
给我错误:
self.wronganswer = QtGui.QLabel(自我,"得分:" .len(错误信息))
AttributeError:' str'对象没有属性' len'
答案 0 :(得分:1)
它只是一个铸造的东西; QtGui.QLabel()
和QtGui.QLabel.setText()
需要QtCore.QString
或unicode
或string
对象,但您尝试传递int。你需要告诉python如何将整数转换为字符串。通常的方法是str(myint)
此外,你需要使用+运算符来组合两个字符串 - 现在你的语法方式,你要求字符串"Score:"
为它的长度方法,这可能不是什么你的意思。
以下内容应按预期工作
self.wronganswerlabel.setText(str(len(wronganswers)))
OR
self.wronganswerlabel = QtGui.QLabel("Score:" + str(len(wronganswers)), self)