官术网_书友最值得收藏!

Ways to create widgets

There are two ways to create widgets in Tkinter.

The first way involves creating a widget in one line and then adding the pack() method (or other geometry managers) in the next line, as follows:

my_label = tk.Label(root, text="I am a label widget")
my_label.pack()

Alternatively, you can write both the lines together, as follows:

tk.Label(root, text="I am a label widget").pack()

You can either save a reference to the widget created ( my_label, as in the first example), or create a widget without keeping any reference to it (as demonstrated in the second example).

You should ideally keep a reference to the widget in case the widget has to be accessed later on in the program. For instance, this is useful in case you need to call one of its internal methods or for its content modification. If the widget state is supposed to remain static after its creation, you need not keep a reference to the widget.

Note that calls to pack() (or other geometry managers) always return None. So, consider a situation where you create a widget, and add a geometry manager (say, pack()) on the same line, as follows: my_label = tk.Label(...).pack(). In this case, you are not creating a reference to the widget. Instead, you are creating a None type object for the my_label variable. So, when you later try to modify the widget through the reference, you get an error because you are actually trying to work on a None type object. If you need a reference to a widget, you must create it on one line and then specify its geometry (like pack()) on the second line, as follows:
my_label = tk.Label(...)
my_label.pack()
This is one of the most common mistakes committed by beginners.
主站蜘蛛池模板: 杭锦后旗| 普宁市| 普定县| 黄山市| 安仁县| 沙洋县| 南安市| 临汾市| 渭南市| 蓝田县| 横山县| 东兰县| 南平市| 太白县| 茶陵县| 桐城市| 遂平县| 钟山县| 怀柔区| 湖北省| 白银市| 鞍山市| 临武县| 久治县| 安庆市| 嘉定区| 旺苍县| 辽宁省| 清新县| 阿坝| 延津县| 长治县| 奉化市| 信宜市| 南宁市| 成都市| 雷州市| 浠水县| 宁国市| 天等县| 荆门市|