[pygtk] Newbie question

Geert Geurts begeert at gmail.com
Fri Apr 18 17:05:11 WST 2008


Thank god I knew I was doing something realy strange... ;)
The first window get buildup at self.gladefile =
"/home/geert/Projects/pleintheater_media-server/cd_inserted/cd_inserted.glade"  
		self.wTree = gtk.glade.XML(self.gladefile)
the second window gets buildup at the call to gtk.main()...
Below is my program, if you have any comments on the structure, please
let me know, I know it's wrong I just don't know WHAT is wrong... I'm a
newbie...

the program:
#!/usr/bin/env python

import os,sys
import string,re
import pdb
try:
    import pygtk
    pygtk.require("2.0")
except:
    pass

try:
    import gtk
    import gtk.glade
except:
    sys.exit(1)
    
GLADEFILE =
"/home/geert/Projects/pleintheater_media-server/cd_inserted/cd_inserted.glade"  
			
class NewCD:
	"""Dit is de gui class als er een nieuwe cd wordt geladen"""
	def __init__(self):
		pdb.set_trace()
		#Set the Glade file
		self.Artiest=''
		self.CDNaam=''
		self.Genre=''
		self.gladefile =
"/home/geert/Projects/pleintheater_media-server/cd_inserted/cd_inserted.glade"  
		self.wTree = gtk.glade.XML(self.gladefile) 

		#Get the Main Window, and connect the events
		self.window = self.wTree.get_widget("window1")
		if (self.window):
			self.window.connect("destroy", gtk.main_quit)
			dic = { "on_AtriestEntry_changed" : self.ArtiestEntryChanged,
			"on_CDNaamEntry_changed" : self.CDNaamEntryChanged,
			"on_GenreEntry_changed" : self.GenreEntryChanged,
			"on_RipButton_clicked" : self.RipButtonClicked}
			self.wTree.signal_autoconnect(dic)


	#Create handler functies
	def ArtiestEntryChanged(self, widget):
		self.Artiest=widget.get_text()
		print "artiest=",self.Artiest

	def CDNaamEntryChanged(self, widget):
		self.CDNaam=widget.get_text()
		print "CDNaam=", self.CDNaam

	def GenreEntryChanged(self, widget):
		self.Genre=widget.get_text()
		print "genre=",self.Genre

	def RipButtonClicked(self, widget):
		if self.Artiest=='':
			print "Artist NOT set!"
		elif self.CDNaam=='':
			print "CDNaam NOT set!"
		elif self.Genre.isdigit()==False:
			print "Genre NOT set!"
		else:
			print "alles ok dus rippen!"
			self.RIPCD(self.Artiest,self.CDNaam,self.Genre)
	
	def RIPCD(self,Artiest,CDNaam,Genre):
		self.DIR='/tmp/'+self.Artiest+' - '+self.CDNaam
		self.DESTDIR='/media/data/music/'
		os.mkdir(self.DIR)
		os.chdir(self.DIR)
		os.system('cdparanoia -Bw')
		files=os.listdir('./')
		progress=Progress()
		for file in files:
			if file.rfind('.wav')!=-1:
				nummer=re.findall('\d',file)
			if len(nummer)==3:
				nr=nummer[0]+nummer[1]+nummer[2]
			elif len(nummer)==2:
				nr=nummer[0]+nummer[1]
			else:
				nr=nummer[0]
			os.system('lame --preset cd '+file+' '+nr+'.mp3')
			os.remove(file)
			os.system('eyeD3 -a '+self.Artiest+' -A '+self.CDNaam+' -G
'+self.Genre+' '+nr+'.mp3')
			
		os.chdir('/tmp')
		os.system('mv '+self.DIR+' '+self.DESTDIR)
		
class Progress:
	def __init__(self):
		self.wTree=gtk.glade.XML(GLADEFILE) 
		self.progresswindow = self.wTree.get_widget("window2")
		if (self.progresswindow):
			self.progresswindow.connect("destroy", gtk.main_quit)
			dic = { "on_button1_clicked" : self.ButtonClicked}
			self.wTree.signal_autoconnect(dic)
			self.progress=self.wTree.get_widget("progressbar1")
			self.button=self.wTree.get_widget("button1")
			
	def ButtonClicked(self):
		print "Button Clicked!"
			
if __name__ == "__main__":
    hwg = NewCD()
    gtk.main()


Thanks for looking!!!

Greetings,
Geert


On Fri, 2008-04-18 at 10:24 +0200, Vláďa wrote:
> This sounds very strange. Please check your code or post here a simple 
> example.
> 
> I'm working on an application which is similar to your's (but works with 
> DVDs and video) and everything works fine.
> 
> Vlada
> 
> Geert Geurts napsal(a):
> > Hello, 
> > I'm a newbie trying to get to know pygtk/gtk so my questions might seem
> > stupid...
> > Sorry for that.
> >
> > I'm trying to write a CDrip application using glade/pygtk. I'm now able
> > to write a program making a gui where you can write the artist album
> > info, and the cd is being ripped when you click the button. But I want
> > it to also show a progress window but this second window is shown as
> > soon you start the application altough the second window is in a
> > seperate  class and is not initialized before a button click.
> > How come this window is shown before initialisation and how can I
> > control this behaviour?
> >
> > Greetings,
> > Geert
> >
> > _______________________________________________
> > pygtk mailing list   pygtk at daa.com.au
> > http://www.daa.com.au/mailman/listinfo/pygtk
> > Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
> >
> >   



More information about the pygtk mailing list