Videoguida: Realizzazione Camera Cafè Player (parte 24)

Caricamento degli episodi e relativi indirizzi nella ComboBox degli episodi. Correzione del difetto di aggiornamento del pulsante di collegamento senza episodi scelti.

La ventitreesima parte è disponibile a questa pagina.

Si consiglia di attivare il video in alta qualità cliccando sul video e scegliendo la qualità 720p HD.

Il codice sorgente usato in questo esempio è il seguente:

import gtk
import gtk.glade
import ConfigParser

def on_winMain_delete_event(widget, data=None):
  gtk.main_quit()
  return False

def on_cboSeries_changed(widget, data=None):
  active = cboSeries.get_active()
  modelEpisode.clear()
  for episode in range(len(videos[active])):
    modelEpisode.append(['Episodio %d' % (episode + 1), videos[active][episode]])

def on_cboEpisode_changed(widget, data=None):
  active = cboEpisode.get_active()
  if active >= 0:
    btnURL.set_uri(modelEpisode[active][1])
    btnURL.set_label(modelEpisode[active][1])

def loadEpisodes(filename):
  videos = []
  config = ConfigParser.RawConfigParser()
  config.read(filename)
 
  series = config.getint('general', 'series')
  for serie in xrange(1, series + 1):
    episodes = []
    episode = 1
    while config.has_option('serie %d' % serie, 'Episode%d' % episode):
      episodes.append(config.get('serie %d' % serie, 'Episode%d' % episode))
      episode += 1
    videos.append(episodes)
  return videos

signals = {
  'on_winMain_delete_event': on_winMain_delete_event,
  'on_cboSeries_changed': on_cboSeries_changed,
  'on_cboEpisode_changed': on_cboEpisode_changed
}

gladeFile = gtk.glade.XML(fname='cameracafeplayer.glade')
gladeFile.signal_autoconnect(signals)

gw = gladeFile.get_widget
winMain = gw('winMain')
cboSeries = gw('cboSeries')
cboEpisode = gw('cboEpisode')
btnURL = gw('btnURL')

modelSeries = gtk.ListStore(str)

cboSeries.set_model(modelSeries)
crSeries = gtk.CellRendererText()
cboSeries.pack_start(crSeries, True)
cboSeries.add_attribute(crSeries, 'text', 0)

modelEpisode = gtk.ListStore(str, str)
modelEpisode.append(['Episodio 1', 'http://wwwqualcosa 1'])
modelEpisode.append(['Episodio 2', 'http://wwwqualcosa 2'])
modelEpisode.append(['Episodio 3', 'http://wwwqualcosa 3'])
modelEpisode.append(['Episodio 4', 'http://wwwqualcosa 4'])
modelEpisode.append(['Episodio 5', 'http://wwwqualcosa 5'])
modelEpisode.append(['Episodio 6', 'http://wwwqualcosa 6'])
cboEpisode.set_model(modelEpisode)
crEpisode = gtk.CellRendererText()
cboEpisode.pack_start(crEpisode, True)
cboEpisode.add_attribute(crEpisode, 'text', 0)

videos = loadEpisodes('cameracafeplayer.txt')
for serie in xrange(1, len(videos) + 1):
  modelSeries.append(['Stagione %d' % serie])
print videos
winMain.show()
gtk.main()

3 Risposte to “Videoguida: Realizzazione Camera Cafè Player (parte 24)”


  1. 1 LostInMyHead ottobre 2, 2010 alle 12:46 PM

    Approfitto di questo commento per farti i complimenti per le guide presenti nel blog molto chiare e ben fatte

  2. 2 Muflone ottobre 2, 2010 alle 1:09 PM

    grazie, son lieto che le trovi di tuo gradimento.
    ciao

  3. 3 annaking01 dicembre 5, 2011 alle 8:47 am

    Ho voluto tutto questo tutorial sarebbe stato in inglese.


Lascia un commento




Indice degli argomenti