标签
self.titlelabel = QLabel(self)
self.artistlabel = QLabel(self)
self.albumlabel = QLabel(self)
当我运行该方法时,UI中的不会更新。
我的意思是,他们确实在initUI(self)
的初始初始化工作,但是当我更改组合框中的项目时,不会使用新信息更新
我在initUI(self)
中运行此命令,该命令连接到下拉列表/ Qcombobox self.cb.activated.connect(self.updateTrackInfo)
def currentTrackInfo(self):
currentTrackInfoDict = {}
currentZone = str(self.cb.currentText())
deviceDict = self.sonosZonesCoordinatorsIP()
for key, value in deviceDict.items():
if value == currentZone:
device = SoCo(key)
track = device.get_current_track_info()
current_title = track['title']
current_artist = track["artist"]
current_album = track["album"]
currentTrackInfoDict.update({"current_title":current_title})
currentTrackInfoDict.update({"current_artist":current_artist})
currentTrackInfoDict.update({"current_album":current_album})
return currentTrackInfoDict
def updateTrackInfo(self):
self.currentTrackInfoDict = self.currentTrackInfo()
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))
self.titlelabel.setText("Title: {}".format(self.currentTrackInfoDict["current_title"]))
print(self.currentTrackInfoDict["current_title"])
self.artistlabel.setText("Artist: {}".format(self.currentTrackInfoDict["current_artist"]))
self.albumlabel.setText("Album: {}".format(self.currentTrackInfoDict["current_album"]))
打印功能:print(self.currentTrackInfoDict["current_title"])
- 有效,但标签未更新。
提前谢谢。
答案 0 :(得分:1)
每次创建新的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))
进入__init__(self)
方法并仅保留标签更新updateTrackInfo
方法中的代码
currentIndexChanged
QComboBox
信号代替activated