On Wednesday 16 March 2011 08:27:59 Markus Hubig wrote:
> Hi @all!
> 
> I'm new to to GUI programming and this is surely a simple newbie
> question ;-)
> I've created a small GUI with just one Button and a progessbar. If one
> presses the Button a QStateMachine is created and started and performs
> a
> rather long running process.
> 
> Now, what I wanna do is to update a progessbar every time I'm entering
> a new State. The Problem is that I'm running thru my StateMachine but
> the progessbar is updated only _after_ the QStateMachine is finished!
> 
> So what I'm missing here?

You need to give Qt a chance to process the events, when you call 
machine.start() the machine starts, change states and until it finishes Qt 
doesn't process any event, so the GUI isn't updated.

There's two possibilities to fix this:

- Put your state machine code into a separated thread.
- Call QCoreApplication.processEvents() on each slot used by your 
QStateMachine.

this was my two cents.

-- 
Hugo Parente Lima
INdT - Instituto Nokia de Tecnologia

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
PySide mailing list
[email protected]
http://lists.pyside.org/listinfo/pyside

Reply via email to