When you call gtk.glade.XML it creates everything that is in the glade file.
Easiest thing to do is to mark your progress window hidden in the glade
file, and then to call show() on it when you need it.
Geert Geurts wrote:
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 [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
_______________________________________________
pygtk mailing list [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
_______________________________________________
pygtk mailing list [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/