On Mon, Mar 10, 2008 at 1:26 AM, Andreas Pakulat <[EMAIL PROTECTED]> wrote: > On 09.03.08 16:21:05, JMiahMan wrote: > > > > > > Andreas Pakulat-2 wrote: > > > > > > Thats because while you run your process the event loop is not run and > > > thus no painting updates are being done. I suggest to take a look at > > > QProcess as that one sends the output in an asynchronous way and thus > > > allows the event loop to update the paintings. > > > > > I apologize I have no clue what you're saying It sounds kinda like a RTFM > > response. I've taken a look at the Qprocess class (and the QT Class page in > > general) but being very new at this and programming in general I understand > > just about as much as what you said above. > > And in fact I was partly wrong :) os.popen doesn't actually block until > the command is finished, but also returns immediately. And thats exactly > your problem, the code flow you have is: > > show dialog > start a child process (only starts, doesn't wait for it to finish) > hide dialog > > As you can see in fact this is almost the same as doing just > > show dialog > hide dialog > > because forking a child process is normally really fast. > > So what you probably really want is to find out when your child process > is done doing what it wants to do. I'm not sure how to do that with > standard python process management. > > However you can do this easily with QProcess. Check the api docs there > are samples how to run any command you want via QProcess. Looking at > your command string you probably need to prepends a /usr/bin/sh -c "..." > as you're executing shell functions (such as sleep) and QProcess doesn't > use a shell when executing the commands. > > QProcess then has signals which you can connect to your own slots which > notify you when the process you started has exited. So the flow would > then become > > show dialog > start process via qprocess > <process runs and also the Qt event loop, which draws the dialog> > QProcess signals that the process exited > hide dialog (in the slot connected to the signal) > > Andreas
Thank you but, I'm still at a loss. I tried what the Wiki said and a few other pages, I've tried to understand what you said.. But as I said I'm pretty new at this and I learn from example. I also studied the class page some more, but in my reading I found that the class page is out of date for Qt4. I guess QProcess has dropped addAtribute. Which has now confused me even more do I then just use start?. Can some please just post a short working script that calls a bash command through qprocess while displaying a progress bar for the short time the script runs. I need a working example to learn from sorry to be difficult. Thanks _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
