Есть код для кнопки с выпадающим меню для выбора mp3 файла. Выпадающее меню по идее должно формироваться динамически, т.е количество строк в нем зависят от количества файлов в директории.
Код выглядит так:
import Phonon.phonon
import glob, os, sys
from PyQt4 import QtCore, QtGui
# Здесь идет основной код ----------------------------------------------------
self.choose = QtGui.QPushButton(self.chooseIcon,'Выбрать аудиофайл ')
self.menu = QtGui.QMenu()
self.mp3path = 'mp3/'
if os.path.isdir(self.mp3path):
self.mp3files = glob.glob(self.mp3path + '\*.mp3')
self.mp3s = os.listdir('mp3/')
self.actions = list(map(lambda x:'self.i'+str(x), range(len(self.mp3files))))# эту хрень придумал, надеясь сформировать функции на лету.
for each in range(len(self.mp3files)):
self.actions[each] = QtGui.QAction(self.mediaIcon,self.mp3files[each],self)
self.menu.addAction(self.actions[each])
self.connect(self.actions[each],QtCore.SIGNAL('triggered()'),self.adding)
# Дальнейший код----------------------------------------------------------------
def adding(self):
for each in self.mp3files:
self.media.setCurrentSource(Phonon.MediaSource(each))
self.media.play()
PS За код сильно не пинайте, в PyQt новичок). Python 3.2. И вообще можно ли таким образом создавать и управлять динамическим меню?