Tkinter how to access the widget by name
Владимир Пылев
clinicalfilm at gmail.com
Wed Oct 17 01:35:29 EDT 2012
вторник, 16 октября 2012 г., 2:26:22 UTC+4 пользователь Prasad, Ramit написал:
> ???????? ????? wrote:
>
> > I'm a little teapot ... himself the question: if I want to appeal to the widget, knowing his name... ?
>
> >
>
> > # appropriated the name of the widget
>
> > label = Label(frame, width = 40, text='text', name = 'name')
>
> > ...
>
> > name_='name'
>
> > configure(name_)
>
> > ...
>
> > def configure(name_)
>
> > #And how can that be?
>
> > # At least let the text you want to change ....
>
> >
>
> > I beg you ..!!!!
>
> > --
>
>
>
> I am unfamiliar with Tkinter, so this might not be very helpful.
>
>
>
> Usually with the GUI I have created before I uses classes and store
>
> the widgets inside the classes. That makes it easier to use
>
> `self.widgetname` or `getattr(self, widgetname)`. If that is not
>
> something you can instead store the attributes in a list/dictionary.
>
> In both cases make sure not to have multiple widgets created with
>
> the same name.
>
>
>
> Note the following is all untested and should be considered pseudo-code.
>
>
>
> widgets = {}
>
> label = Label(frame, width = 40, text='text', name = 'name')
>
> widgets['name'] = label
>
>
>
> def configure(name_):
>
> widget = widgets[name_]
>
>
>
> OR
>
>
>
> widgets = []
>
> label = Label(frame, width = 40, text='text', name = 'name')
>
> widgets.append( label )
>
>
>
> def configure(name_):
>
> found = False
>
> for w in widgets:
>
> if w.name == name_: # No idea how to get name from Tk widget
>
> found = True
>
> break
>
> if found:
>
> # configure here
>
>
>
>
>
> Ramit Prasad
>
>
>
>
>
> This email is confidential and subject to important disclaimers and
>
> conditions including on offers for the purchase or sale of
>
> securities, accuracy and completeness of information, viruses,
>
> confidentiality, legal privilege, and legal entity disclaimers,
>
> available at http://www.jpmorgan.com/pages/disclosures/email.
ok thanks, that this method is suitable in full: "widgets.append( label )" , аlthough at the beginning wanted to access the widget by its internal name, but I left this venture )).
More information about the Python-list
mailing list