New submission from Peter Vex <petia...@gmail.com>:

When you want to simply place a widget on a window and you also want to store 
the reference for that widget in a variable you can't do that in one line, 
which is really unpleasant, because when you create a new widget these things 
are usually the first what you want to do with a widget and breaking it two 
line is just making things more complicated.

For example, if you want to create 3 label, place it next to each other and 
store their reference:

import tkinter as tk
root = tk.Tk()

# you can't do that:
# here the variables assigned to None, since grid() returns 'nothing'
label1 = tk.Label(root).grid(row=0, column=0)
label2 = tk.Label(root).grid(row=0, column=1)
label3 = tk.Label(root).grid(row=0, column=2)

# actually, you must do this:
label1 = tk.Label(root)
label1.grid(row=0, column=0)
label2 = tk.Label(root)
label2.grid(row=0, column=1)
label3 = tk.Label(root)
label3.grid(row=0, column=2)

----------
components: Tkinter
messages: 333318
nosy: Peter Vex
priority: normal
pull_requests: 10980
severity: normal
status: open
title: Place, Pack and Grid should return the widget
type: behavior
versions: Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue35700>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to