Python PyQT自动更新标签

Python PyQT自动更新标签,python,pyqt,Python,Pyqt,标签 self.titlelabel = QLabel(self) self.artistlabel = QLabel(self) self.albumlabel = QLabel(self) 在UI中,当我运行该方法时,不更新。 我的意思是,他们确实在初始化initUI(self),但是当我更改组合框中的项目时,不会用新信息更新 我在initUI(self)中运行此命令,该命令连接到下拉菜单/Qcomboboxself.cb.activated.connect(self.updateTrac

标签

self.titlelabel = QLabel(self)
self.artistlabel = QLabel(self)
self.albumlabel = QLabel(self)
在UI中,当我运行该方法时,不更新。 我的意思是,他们确实在初始化
initUI(self)
,但是当我更改组合框中的项目时,不会用新信息更新 我在
initUI(self)
中运行此命令,该命令连接到下拉菜单/Qcombobox
self.cb.activated.connect(self.updateTrackInfo)

打印功能:
print(self.currentTrackInfoDict[“current_title”])
-正常工作,但标签不会更新

先谢谢你

  • updateTrackInfo
    方法中,每次创建新的
    QLabel
    对象时,而不仅仅是更新现有对象上的文本。这可能会导致问题,因为新标签与旧标签重叠(您没有删除旧标签,并且在调用
    updateTrackInfo
    后它们仍然存在)。我建议搬家

    self.titlelabel = QLabel(self)
    self.artistlabel = QLabel(self)
    self.albumlabel = QLabel(self)
    
    self.titlelabel.move((PLAYICONHEIGHT-100),(WINDOWHEIGHT-230))
    self.artistlabel.move((PLAYICONHEIGHT-100),(WINDOWHEIGHT-220))
    self.albumlabel.move((PLAYICONHEIGHT-100),(WINDOWHEIGHT-250))
    
  • 进入
    \uuuu init\uuuuu(self)
    方法,并在
    updateTrackInfo
    方法中仅保留更新代码的标签

  • 我建议使用
    currentIndexChanged
    QComboBox
    信号,而不是
    激活的

  • 完美的谢谢你给我解释原因。完全有道理,而且有效!乐意帮忙:)更好的选择是
    currentTextChanged
    self.titlelabel = QLabel(self)
    self.artistlabel = QLabel(self)
    self.albumlabel = QLabel(self)
    
    self.titlelabel.move((PLAYICONHEIGHT-100),(WINDOWHEIGHT-230))
    self.artistlabel.move((PLAYICONHEIGHT-100),(WINDOWHEIGHT-220))
    self.albumlabel.move((PLAYICONHEIGHT-100),(WINDOWHEIGHT-250))