[Urwid] run long time command in urwid
naihong at gmail.com
Tue Nov 23 17:27:40 EST 2010
Thank you, Ian.
OnButtonPressed is Button's on_press callback, Run is MainLoop's run()
method, sorry for inaccurate expression.
The RAID building including a sequence of commands. Some commands are
synchronized, I mean the command will run until the operation finished.
Other commands are unsynchronized, after send the command, it will
finish immediately, polling is needed to get the status and result. I have
already done this part with pexpect module. Now I want to integrate it with
urwid, so the user can adjust some system parameters at beginning. Seems
start a thread will be the right choice.
I have another question, can the working thread call urwid to update the GUI
interface, or only the main thread can do it.
On Tue, Nov 23, 2010 at 9:19 AM, Ian Ward <ian at excess.org> wrote:
> Naihong Tang wrote on 2010-11-23 03:10:
> > Hello,
> > I plan to write a RAID building program with urwid. In the first window,
> > input some parameters, after user press the OK button, popup a new
> > window with progress bar, indicating the finished percentage, and do not
> > accept user input in this window, this window will close itself after
> > building procedure finished. Since the RAID building procedure will last
> > long time, about 10 hours, so it cannot be placed in OnButtonPressed()
> > event. After reading the urwid document, I think use thread or subclass
> > widget Run() can do this. I would like to know if there is other simple
> > way to implement.
> You could use threads, but it might be easier to just poll the status of
> the RAID array creation from a MainLoop.set_alarm_in callback. That way
> it's easy to update what's displayed (no synchronization required)
> I'm not sure where you're reading about Run or OnButtonPressed methods,
> Urwid mailing list
> Urwid at lists.excess.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Urwid