[pygtk] How to prevent user-interaction with the UI?

Timo timomlists at gmail.com
Wed Aug 15 17:42:21 WST 2012


Op 14-08-12 20:35, Ajay Garg schreef:
> Timo,
> I wish to freeze the UI, while an operation is in progress.
Maybe you need a modal dialog with a progressbar? That way the user sees 
progress happening and the main window isn't active.

>
>
> Anyways, I am facing another problem. Now, while the root window is
> frozen, and if I try to unfreeze a child widget - by
> "set_sensitive(True) - it does not work.
>
> Is it expected? If yes, is there a workaround?
This could be solved with a (or more) calls like this:
while gtk.events_pending():
     gtk.main_iteration()

Cheers,
Timo

>
>
> Thanks and Regards,
> Ajay
>
>
> On Tue, Aug 14, 2012 at 10:44 PM, Timo <timomlists at gmail.com> wrote:
>> Op 14-08-12 12:21, Ajay Garg schreef:
>>
>>> Thanks Timo.
>>>
>>> It worked !!!
>>>
>>>
>>> Just one last query ::
>>>
>>> When I desensitize the root window, the entire window goes "grayed".
>>> Is there a way, so that we can prevent the graying out? Ideally, I would
>>> like no colour change.
>>>
>> Maybe it's possible with theming, but I'm not familiar with that.
>>
>> I wonder why you want to do that though. From a user's view, it's very
>> confusing when the window is unresponsive without visual indication. It
>> instantly reminds me of an application that hangs.
>>
>> Cheers,
>> Timo
>>
>>> Thanks and Regards,
>>> Ajay
>>>
>>>
>>>
>>> On Tue, Aug 14, 2012 at 2:28 PM, Timo <timomlists at gmail.com
>>> <mailto:timomlists at gmail.com>> wrote:
>>>
>>>      Op 14-08-12 06:35, Ajay Garg schreef:
>>>
>>>          Hi all.
>>>
>>>          I have four simple questions :)   ::
>>>
>>>
>>>          a)
>>>          How to block the complete UI (in the sense that no
>>>          user-interaction with the UI is effective), although the UI
>>>          changes take place as usual via the changes emanating from the
>>>          code?
>>>
>>>
>>>          b)
>>>          How to block only a widget, while the rest of the UI remains
>>>          unblocked?
>>>
>>>
>>>          c)
>>>          How to unblock only a widget, while the rest of the UI remains
>>>          blocked?
>>>
>>>
>>>          d)
>>>          How to unblock the complete UI?
>>>
>>>
>>>      Do you mean gtk.Widget.set_sensitive(True|False) ? You can use it
>>>      on your toplevel window to disable the whole application or on
>>>      individual widgets.
>>>
>>>      Cheers,
>>>      Timo
>>>
>>>
>>>          Will be grateful for a reply.
>>>
>>>
>>>          Thanks and Regards,
>>>          Ajay
>>>
>>>
>>>
>>>
>>>          _______________________________________________
>>>          pygtk mailing list pygtk at daa.com.au <mailto:pygtk at daa.com.au>
>>>
>>>          http://www.daa.com.au/mailman/listinfo/pygtk
>>>          Read the PyGTK FAQ: http://faq.pygtk.org/
>>>
>>>
>>>      _______________________________________________
>>>      pygtk mailing list pygtk at daa.com.au <mailto:pygtk at daa.com.au>
>>>
>>>      http://www.daa.com.au/mailman/listinfo/pygtk
>>>      Read the PyGTK FAQ: http://faq.pygtk.org/
>>>
>>>



More information about the pygtk mailing list