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.
Regards Naihong On Tue, Nov 23, 2010 at 9:19 AM, Ian Ward <[email protected]> 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) > > http://excess.org/urwid/reference.html#MainLoop > > I'm not sure where you're reading about Run or OnButtonPressed methods, > though.. > > HTH > Ian > > _______________________________________________ > Urwid mailing list > [email protected] > http://lists.excess.org/mailman/listinfo/urwid >
_______________________________________________ Urwid mailing list [email protected] http://lists.excess.org/mailman/listinfo/urwid
