【问题标题】:Putting list length to QLabel in PyQt4在 PyQt4 中将列表长度放入 QLabel
【发布时间】:2016-04-28 08:14:06
【问题描述】:

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

如何在 QLabel 中输入wronganswers 长度?

我已经尝试过这些:

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(self, "Score:".len(wronganswers))
AttributeError: 'str' 对象没有属性 'len'

【问题讨论】:

    标签: python arrays pyqt4


    【解决方案1】:

    这只是一个铸造的事情; QtGui.QLabel()QtGui.QLabel.setText() 需要一个 QtCore.QString 或只是一个 unicodestring 对象,但您正在尝试传递一个 int。您需要告诉 python 如何将整数转换为字符串。通常的方式是str(myint)

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

    以下应该按预期工作

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

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

    【讨论】:

    • 给我这个错误@lemonhead File "quiz.py", line 352, in scorecheck self.wronganswerlabel = QtGui.QLabel(self, "Score:" + str(len(wronganswers))) TypeError: arguments did not match any overloaded call: QLabel(QWidget parent=None, Qt.WindowFlags flags=0): argument 2 has unexpected type 'str' QLabel(QString, QWidget parent=None, Qt.WindowFlags flags=0): argument 1 has unexpected type 'Window'
    • 感谢您提供有用的回答和解释!我解决了将 self 放在最后的问题:self.wronganswerlabel = QtGui.QLabel("Score:" + str(len(wronganswers)), self) self.wronganswerlabel.setGeometry(200, 200, 200, 200) self.wronganswerlabel.show()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    相关资源
    最近更新 更多