By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,898 Members | 1,198 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,898 IT Pros & Developers. It's quick & easy.

Repost: Text not showing up

P: n/a
Simone wrote:
Hi all, I am new to python and trying to write a simple GUI that would
call 2 growisofs processes (dvd burning) at the same time, and retrive
the exit code to be printed on a text box (couldn't find any program
that could use multiple dvd burners, not even k3b). Excuse me if this is
really a simple problem, but two days of googling didn't help.
The program is really simple, I developed the GUI using glade and it
works.
The only thing I would like to improve is that I'd like it to show in
the text boxes messages like "Waiting for use input" or "Burning dvd
please wait", but it looks like even though I don't have any error, the
message won't show up until the burning process is finished (showing
either "burning successfully" or "an error occurred").
I am not sure I made myself clear on this, but I will post the relevant
code trying to explain it:

import os, sys
import gtk.glade

class DVD:
def __init__(self):
print "Initializing the Graphic User Interface: This may take
some time"
self.xml=gtk.glade.XML("./dvd2.xml")
self.window=self.xml.get_widget("dvd")
self.xml.signal_connect('on_quit_clicked', self.Quit)
self.xml.signal_connect('on_burn_clicked', self.Burn)

self.OrdKeys=["comboentry1","entry1","spinbutton1","entry2","esi totext","esitotext1"]
# here esitotext is the box I want the text to show up

def Quit(self, *args):
gtk.mainquit()

def Burn(self, *args):

comand=""
comand2=""

name=self.xml.get_widget("entry1").get_text() #name
for the dvd
path=self.xml.get_widget("comboentry1").get_text() #path to
dvd AUDIO_TS and VIDEO_TS
num=self.xml.get_widget("spinbutton1").get_text() #chosing
the number of dvd to burn
pub=self.xml.get_widget("entry2").get_text()
#publisher
self.xml.get_widget("esitotext").set_text("Waiting for
input") # THIS NEVER SHOWS UP
dvd1="/dev/hda" # this is the first dvd
burner, edit as needed
dvd2="/dev/hdc" # this is the second dvd
burner, edit as needed

comand+="growisofs -dvd-compat -Z "+dvd1+" -dvd-video -V
"+name+" -publisher "+pub+" "+path
comand2+="growisofs -dvd-compat -Z "+dvd2+" -dvd-video -V
"+name+" -publisher "+pub+" "+path
if num == "1":
self.xml.get_widget("esitotext").set_text("Burning the dvd,
please wait") # THIS NEVER SHOWS UP, unless i have an error and
the program

# quits
before executing the command
self.xml.get_widget("esitotext").show()
# don't know if this is correct,
but it doesn't work either
f = os.popen(comand, 'r')
line = f.readline()

error_in_prog = f.close()
if error_in_prog:
error=str(error_in_prog)
self.xml.get_widget("esitotext").set_text("An error
occurred. Burn not completed") # THIS COMES UP as it should
self.xml.get_widget("esitotext").show()
else:
self.xml.get_widget("esitotext").set_text("Burn
completed successfully") # THIS COMES UP as it should
self.xml.get_widget("esitotext").show()
if __name__=='__main__':
main=DVD()
gtk.main()
Any comment, help, url, really appreciated.

Have a nice day
Simone



Oct 17 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
>> Hi all, I am new to python and trying to write a simple GUI that would
call 2 growisofs processes (dvd burning) at the same time, and retrive
the exit code to be printed on a text box (couldn't find any program
that could use multiple dvd burners, not even k3b). Excuse me if this
is really a simple problem, but two days of googling didn't help.
The program is really simple, I developed the GUI using glade and it
works.
The only thing I would like to improve is that I'd like it to show in
the text boxes messages like "Waiting for use input" or "Burning dvd
please wait", but it looks like even though I don't have any error,
the message won't show up until the burning process is finished
(showing either "burning successfully" or "an error occurred").
I am not sure I made myself clear on this, but I will post the
relevant code trying to explain it:


The problem is that the changes take effect after gtk has reentered its
event-loop. Which won't happen until your programs terminate.

If your goal is only to display the messages, there is certainly a way
to process the event loop for one iteration. Try and google for GTK
event loops.

If you want to display an continuous update, you will have to install a
timer event, and start the burning as subprocesses.

Regards,

Diez
Oct 17 '05 #2

P: n/a
> The problem is that the changes take effect after gtk has reentered its
event-loop. Which won't happen until your programs terminate.


With programs I mean of course the burning commandos.

Diez
Oct 17 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.