Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
September 22, 2022 12:48 am GMT

Tkinter & Tk resources


Default Widgets

Quick references

Widgets useful methods

The following are some of the most useful methods: - winfo_class: a class identifying the type of widget, e.g. TButton for a themed button- winfo_children: a list of widgets that are the direct children of a widget in the hierarchy- winfo_parent: parent of the widget in the hierarchy- winfo_toplevel: the toplevel window containing this widget - winfo_width, winfo_height: current width and height of the widget; not accurate until appears onscreen - winfo_reqwidth, winfo_reqheight: the width and height the widget requests of the geometry manager (more on this shortly) - winfo_x, winfo_y: the position of the top-left corner of the widget relative to its parent - winfo_rootx, winfo_rooty: the position of the top-left corner of the widget relative to the entire screen the position of the top-left corner of the widget relative to its parent - winfo_rootx, winfo_rooty: the position of the top-left corner of the widget relative to the entire screen - winfo_vieweable: whether the widget is displayed or hidden (all its ancestors in the hierarchy must be viewable for it to be viewable)
def print_hierarchy(w, depth=0):    print('  '*depth + w.winfo_class() + ' w=' + str(w.winfo_width()) + ' h=' + str(w.winfo_height()) + ' x=' + str(w.winfo_x()) + ' y=' + str(w.winfo_y()))    for i in w.winfo_children():        print_hierarchy(i, depth+1)print_hierarchy(root)

Grid management

grid_forget & grid_remove

grid_slaves()w.grid_remove()destroy()grid_forgetw.grid()# destroyfor widget in frame.winfo_children():    widget.destroy()

life circle ?

update(), update_idletastks()

python - What's the difference between "update" and "update_idletasks"? - Stack Overflow

The important thing to remember is that update blocks until all events are processed. In effect, that means you have a mainloop nested inside a mainloop. It's never a good idea to have an infinite loop inside an infinite loop.



ControlMod1, M1, CommandAltMod2, M2, OptionShiftMod3, M3LockMod4, M4ExtendedMod5, M5Button1, B1Meta, MButton2, B2DoubleButton3, B3TripleButton4, B4QuadrupleButton5, B5

Event types

ActivateDestroyMapButtonPress, ButtonEnterMapRequestButtonReleaseExposeMotionCirculateFocusInMouseWheelCirculateRequestFocusOutPropertyColormapGravityReparentConfigureKeyPress, KeyResizeRequestConfigureRequestKeyReleaseUnmapCreateLeaveVisibilityDeactivate

Some Examples

label.bind('<Button-1>', left_mouse_down) label.bind('<ButtonRelease-1>', left_mouse_up)label.bind('<Button-3>', right_mouse_down)label.bind('<ButtonRelease-3>', right_mouse_up)label.bind('<B1-Motion>', moving_mouse)label.bind('<Enter>', moving_into)label.bind('<Leave>', moving_out)label.bind('<FocusIn>', focus)label.bind('<FocusOut>', unfocus)<Double-Button-1><MouseWheel><Button-4><Button-5><Control-Button-1><space> # lower caseframe.bind('<Control-Shift-S>', key)


Refief Styles
via: 5.6.Relief styles

# Create style Objectstyle = Style()style.configure('TButton', font =               ('calibri', 20, 'bold'),                    borderwidth = '4')# Changes will be reflected# by the movement of'TButton', foreground = [('active', '! disabled', 'green')],                     background = [('active', 'black')])



Video Player




Original Link:

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To