将列表长度放在PyQt4中的QLabel中

时间:2016-04-28 08:14:06

标签: python arrays pyqt4

我在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'

1 个答案:

答案 0 :(得分:1)

它只是一个铸造的东西; QtGui.QLabel()QtGui.QLabel.setText()需要QtCore.QStringunicodestring对象,但您尝试传递int。你需要告诉python如何将整数转换为字符串。通常的方法是str(myint)

此外,你需要使用+运算符来组合两个字符串 - 现在你的语法方式,你要求字符串"Score:"为它的长度方法,这可能不是什么你的意思。

以下内容应按预期工作

self.wronganswerlabel.setText(str(len(wronganswers)))

OR

self.wronganswerlabel = QtGui.QLabel("Score:" + str(len(wronganswers)),  self)