def __showAddToMenu(self): """ 显示添加到菜单 """ # 初始化菜单动作触发标志 self.__actionTriggeredFlag = False addToMenu = AddToMenu(parent=self) # 计算菜单弹出位置 addToGlobalPos = self.selectionModeBar.mapToGlobal(QPoint( 0, 0)) + QPoint(self.selectionModeBar.addToButton.x(), 0) x = addToGlobalPos.x() + self.selectionModeBar.addToButton.width() + 5 y = addToGlobalPos.y() + int( self.selectionModeBar.addToButton.height() / 2 - (13 + 38 * addToMenu.actionCount()) / 2) # 获取选中的歌曲信息列表 songInfo_list = [ songCard.songInfo for songCard in self.songListWidget.checkedSongCard_list ] addToMenu.playingAct.triggered.connect( lambda: self.addSongsToPlayingPlaylistSig.emit(songInfo_list)) addToMenu.addSongsToPlaylistSig.connect( lambda name: self.addSongsToCustomPlaylistSig.emit( name, songInfo_list)) addToMenu.newPlayList.triggered.connect( lambda: self.addSongsToNewCustomPlaylistSig.emit(songInfo_list)) for act in addToMenu.action_list: act.triggered.connect(self.__addToMenuTriggeredSlot) addToMenu.exec(QPoint(x, y)) # 如果动作有被触发就退出选择模式 if self.__actionTriggeredFlag: self.__unCheckSongCards()
def __showAddToMenu(self): """ 显示添加到菜单 """ addToMenu = AddToMenu(parent=self) addToGlobalPos = self.mapToGlobal(self.addToBt.pos()) x = addToGlobalPos.x() + self.addToBt.width() + 5 y = addToGlobalPos.y() + int(self.addToBt.height() / 2 - (13 + 38 * addToMenu.actionCount()) / 2) addToMenu.playingAct.triggered.connect(self.addToPlayingPlaylistSig) addToMenu.addSongsToPlaylistSig.connect(self.addToCustomPlaylistSig) addToMenu.newPlayList.triggered.connect(self.addToNewCustomPlaylistSig) addToMenu.exec(QPoint(x, y))
def __showAddToMenu(self): """ 显示添加到菜单 """ addToMenu = AddToMenu(parent=self) addToGlobalPos = self.mapToGlobal(QPoint(0, 0)) + QPoint( self.addToButton.x() + self.buttonGroup.x(), 0) x = addToGlobalPos.x() + self.addToButton.width() + 5 y = addToGlobalPos.y() + int(self.addToButton.height() / 2 - (13 + 38 * addToMenu.actionCount()) / 2) addToMenu.playingAct.triggered.connect( lambda: self.addSongToPlayingSig.emit(self.songInfo)) addToMenu.addSongsToPlaylistSig.connect( lambda name: self.addSongsToCustomPlaylistSig.emit( name, [self.songInfo])) addToMenu.exec(QPoint(x, y))
def __createActions(self): """ 创建动作 """ # 创建动作 self.playAct = QAction("播放", self) self.selectAct = QAction("选择", self) self.nextToPlayAct = QAction("下一首播放", self) self.pinToStartMenuAct = QAction('固定到"开始"菜单', self) self.deleteAct = QAction("删除", self) self.editInfoAct = QAction("编辑信息", self) self.showSongerAct = QAction("显示歌手", self) self.addToMenu = AddToMenu("添加到", self) # 添加动作到菜单 self.addActions([self.playAct, self.nextToPlayAct]) # 将子菜单添加到主菜单 self.addMenu(self.addToMenu) self.addActions( [ self.showSongerAct, self.pinToStartMenuAct, self.editInfoAct, self.deleteAct, ] ) self.addSeparator() self.addAction(self.selectAct)
def __showAddToMenu(self): """ 显示添加到菜单 """ # 动作触发标志位 self.__actionTriggeredFlag = False addToMenu = AddToMenu(parent=self) addToButton = self.sender() # 获取选中的播放列表 songInfo_list = [] if self.sender() is self.songTabSelectionModeBar.addToButton: selectionModeBar = self.songTabSelectionModeBar songInfo_list = [ songCard.songInfo for songCard in self.songCardListWidget.checkedSongCard_list ] else: selectionModeBar = self.albumTabSelectionModeBar for albumCard in self.albumCardViewer.checkedAlbumCard_list: songInfo_list.extend(albumCard.songInfo_list) # 计算菜单弹出位置 addToGlobalPos = selectionModeBar.mapToGlobal(QPoint(0, 0)) + QPoint( addToButton.x(), addToButton.y() ) x = addToGlobalPos.x() + addToButton.width() + 5 y = addToGlobalPos.y() + int( addToButton.height() / 2 - (13 + 38 * addToMenu.actionCount()) / 2 ) # 信号连接到槽 addToMenu.playingAct.triggered.connect( lambda: self.addSongsToPlayingPlaylistSig.emit(songInfo_list) ) addToMenu.newPlayList.triggered.connect( lambda: self.addSongsToNewCustomPlaylistSig.emit(songInfo_list) ) addToMenu.addSongsToPlaylistSig.connect( lambda name: self.addSongsToCustomPlaylistSig.emit(name, songInfo_list) ) for act in addToMenu.action_list: act.triggered.connect(self.__addToMenuTriggeredSlot) addToMenu.exec(QPoint(x, y)) # 退出选择状态 if self.__actionTriggeredFlag: self.exitSelectionMode()
def createActions(self): """ 创建动作 """ # 创建主菜单动作 self.playAct = QAction("播放", self) self.nextSongAct = QAction("下一首播放", self) self.editInfoAct = QAction("编辑信息", self) self.showPropertyAct = QAction("属性", self) self.deleteAct = QAction("删除", self) self.selectAct = QAction("选择", self) # 创建菜单和子菜单 self.addToMenu = AddToMenu("添加到", self) # 将动作添加到菜单中 self.addActions([self.playAct, self.nextSongAct]) # 将子菜单添加到主菜单 self.addMenu(self.addToMenu) # 将其余动作添加到主菜单 self.addActions([self.editInfoAct, self.showPropertyAct, self.deleteAct]) self.addSeparator() self.addAction(self.selectAct)
def __createActions(self): """ 创建动作 """ # 创建动作 self.playAct = QAction("播放", self) self.nextToPlayAct = QAction("下一首播放", self) self.addToMenu = AddToMenu("添加到", self) self.renameAct = QAction("重命名", self) self.pinToStartMenuAct = QAction('固定到"开始"菜单', self) self.deleteAct = QAction("删除", self) self.selectAct = QAction("选择", self) # 添加动作到菜单 self.addActions([self.playAct, self.nextToPlayAct]) # 将子菜单添加到主菜单 self.addMenu(self.addToMenu) self.addActions( [self.renameAct, self.pinToStartMenuAct, self.deleteAct]) self.addSeparator() self.addAction(self.selectAct)