Well, anyone's free to update the docs if they want. I'm just not sure I do 
things the "correct" way to be comfortable to update the documentation 
(although the worst that could happen is that the devs reject my updates!)

Following on from my previous message, I think the correct way to do it in 
the future is as follows:
from libqtile import qtile
...
def change_text(*args):  # Your function should still accept args as the 
current version is passing the qtile object but this is being deprecated
     qtile.widgets_map["textbox"].update("Updated Text")

This *should* be future proof!



On Saturday, 17 October 2020 at 20:46:04 UTC+1 rickroller wrote:

> Thanks man! I didn't know that a qtile object is passed during mouse 
> callbacks. That works. 
>
> I wish there was a discord server or subreddit around qtile. Because while 
> the documentation is really good. But for people who want to configure it a 
> bit more, a community is a must. Otherwise people will have to scour 
> through source code for minor issues everytime. Making it tough for noobs 
> like me. 
>
> Even inside the qshell, its tough to understand how to manipulate the 
> objects after navigating to it. There is little explanation in the docs 
> about that.
> On Saturday, October 17, 2020 at 11:47:23 PM UTC+5:30 elParaguayo wrote:
>
>> Sorry for all the messages. 
>>
>> Having looked at the source on github, I don't know if this is a long 
>> term solution as the button_press function no longer seems to pass the 
>> qtile object. According to the commit 
>> <https://github.com/qtile/qtile/commit/55f92b22b346ccd8a4c3e1867080bc82dbcaf33b#diff-932dbeefdf2b3d64837a8571334e72328fd8580e50c453de2c5652ade6e2d3b6>
>>  
>> the correct way to access the qtile object is to import "libqtile.qtile".
>>
>> On Saturday, 17 October 2020 at 19:09:59 UTC+1 elParaguayo wrote:
>>
>>> OK - had some success.
>>>
>>> It looks like the main qtile object has a list of the active widgets 
>>> which we need to access. It also looks like that running the callback 
>>> passes the qtile object as an argument. As a result, your callback function 
>>> could look like this:
>>>
>>> def change_text(qtile):
>>>      qtile.widgets_map["textbox"].update("Updated Text")
>>>
>>> On Saturday, 17 October 2020 at 19:04:51 UTC+1 elParaguayo wrote:
>>>
>>>> I agree it's not particularly obvious. I haven't seen anything in the 
>>>> docs about this.
>>>>
>>>> I'm not sure the InteractiveCommandClient is the right way to do this 
>>>> (and I think that "lazy" is actually just an instance of this).
>>>>
>>>> If I bind this to a key:
>>>> lazy.widget["textbox"].update("xyz")
>>>> it works.
>>>>
>>>> However, if I put it in a callback function it doesn't.
>>>>
>>>> I'll have a play around and see if I can figure it out (or someone more 
>>>> experienced can reply before then!).
>>>>
>>>> On Sat, 17 Oct 2020 at 17:47, rickroller <[email protected]> wrote:
>>>>
>>>>>
>>>>> Thanks for the reply.
>>>>>
>>>>> I actually did try it with and without the braces. Qtile reloads fine, 
>>>>> vscode doesn''t show any errors but the textbox just doesn't update.  
>>>>> Here 
>>>>> is the snippet. 
>>>>>
>>>>> def change_text():
>>>>>     c=InteractiveCommandClient()
>>>>>     c.widget['textbox'].update('replaced_text')
>>>>>
>>>>> screens=[
>>>>> Screen(
>>>>>      bottom=bar.Bar(widget.TextBox('text', mouse_callbacks={'Button1' 
>>>>> : change_text}
>>>>> )
>>>>>
>>>>> It just doesn't change on mouse click. What are the other ways to 
>>>>> access widgets and update them in config.py?
>>>>>
>>>>>
>>>>> On Saturday, October 17, 2020 at 9:46:24 PM UTC+5:30 elParaguayo wrote:
>>>>>
>>>>>> I've never used the InteractiveCommandClient but I would think you 
>>>>>> need to create an instance of it first before trying to update the 
>>>>>> widget 
>>>>>> i.e.
>>>>>>
>>>>>> from libqtile.command_client import InteractiveCommandClient
>>>>>> c=InteractiveCommandClient()
>>>>>> c.widget['textbox'].update('xyz') 
>>>>>>
>>>>>> Note the "()" at the end of the second line.
>>>>>>
>>>>>> If it doesn't work, what error messages do you get?
>>>>>>
>>>>>>
>>>>>> On Sat, 17 Oct 2020 at 14:05, rickroller <[email protected]> wrote:
>>>>>>
>>>>>>>
>>>>>>> I wanted to update the TextBox widget every 5 minutes through the 
>>>>>>> output of a script. I tried 
>>>>>>>
>>>>>>> from libqtile.command_client import InteractiveCommandClient
>>>>>>> c=InteractiveCommandClient
>>>>>>> c.widget['textbox'].update('xyz')  
>>>>>>>
>>>>>>> For people without more than a basic knowledge of python, its very 
>>>>>>> tough to understand the basic skeleton of how this works. I know, its 
>>>>>>> on 
>>>>>>> me. But can anyone please help?  
>>>>>>>   
>>>>>>>
>>>>>>> -- 
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "qtile-dev" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>> send an email to [email protected].
>>>>>>> To view this discussion on the web visit 
>>>>>>> https://groups.google.com/d/msgid/qtile-dev/2a7f2150-462e-4673-9d99-f09ce0c0888bn%40googlegroups.com
>>>>>>>  
>>>>>>> <https://groups.google.com/d/msgid/qtile-dev/2a7f2150-462e-4673-9d99-f09ce0c0888bn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>> -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "qtile-dev" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to [email protected].
>>>>>
>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/qtile-dev/8029133e-5834-47de-a9ee-fcdfc6d45d37n%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/qtile-dev/8029133e-5834-47de-a9ee-fcdfc6d45d37n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"qtile-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/qtile-dev/6fe643f9-3362-4c8c-a88a-3fd92f885e39n%40googlegroups.com.

Reply via email to