Я создаю popmenu
в pushButton_6
.
В попменю есть три действия, и каждое действие может только радио.
Действие используется для настройки воспроизведения песни.
У меня возникла проблема, вызвавшая действие, будет запомнена.
Как я могу разрешить действие выполнять только сейчас, когда проверяется?
Например,
Список композиций: ABCDEFG, и теперь играет A.
, когда я нажимаю упорядоченное действие перед случайным действием.
Песня сначала будет упорядочена (песня B), затем со случайным (предположим теперь случайным образом к E).
Итак, он играет песню E.
Но я хочу, чтобы песня просто играла со случайным, потому что теперь она превратилась в состояние случайного.
Другой пример:
, когда я нажимаю упорядоченное действие, затем случайное действие и, наконец, упорядоченное действие.
Песня будет сначала с заказом (песня B), затем со случайным (предположим теперь случайным образом к E) и, наконец, с упорядоченным. (Песня F)
Но я хочу, чтобы песня просто играла с упорядоченным, потому что теперь она преобразуется в состояние упорядоченного.
Итак, песня должна играть B не F.
Как я могу разрешить действие выполнять только теперь проверяемый?
Кстати, может появиться всплывающее окно?
Это код popmenu.
popmenu = QtGui.QMenu(self.ui.pushButton_6)
group = QtGui.QActionGroup(self.ui.pushButton_6)
group.setExclusive(True)
for i in range(1, 4):
if i==1:
action = group.addAction('ordered')
action.setCheckable(True)
#action.setChecked(True)
if i==2:
action = group.addAction('replay')
action.setCheckable(True)
if i==3:
action = group.addAction('random')
action.setCheckable(True)
popmenu.addAction(action)
self.ui.pushButton_6.setMenu(popmenu)
group.triggered.connect(self.sortedEvent)
Вот код sortedEvent.
def sortedEvent(self,action):
if action.text()=="ordered":
print(action.text())
self.connect(self.mediaObject,QtCore.SIGNAL('finished()'),self.ordered)
if action.text()=="replay":
print(action.text())
self.connect(self.mediaObject,QtCore.SIGNAL('aboutToFinish()'),self.replay)
if action.text()=="random":
print(action.text())
self.connect(self.mediaObject,QtCore.SIGNAL('finished()'),self.random)
Как правило, если условия эксклюзивны - 'group.setExclusive (истина)', то вы должны использовать 'еще if' условное заявления. Тем не менее, я все еще ищу подходящее решение. –
Чтобы отобразить всплывающее меню с помощью мыши, 'QMenu.exec (QCursor.pos())'. – Mel