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

Setting the focus to a widget and disabling widgets

While our GUI is nicely improving, it would be more convenient and useful to have the cursor appear in the Entry widget as soon as the GUI appears. Here we learn how to do this.

Getting ready

This recipe extends the previous recipe.

How to do it...

Python is truly great. All we have to do to set the focus to a specific control when the GUI appears is call the focus() method on an instance of a tkinter widget we previously created. In our current GUI example, we assigned the ttk.Entry class instance to a variable we named nameEntered. Now we can give it the focus.

Place the following code just above the bottom of the module that starts the main windows event loop, just like in previous recipes. If you get some errors, make sure you are placing calls to variables below the code where they are declared. We are not using OOP as of yet, so this is still necessary. Later, it will no longer be necessary to do this.

nameEntered.focus()            # Place cursor into name Entry

On a Mac, you might have to set the focus to the GUI window first before being able to set the focus to the Entry widget in this window.

Adding this one line of Python code places the cursor into our text Entry box, giving the text Entry box the focus. As soon as the GUI appears, we can type into this text box without having to click it first.

Note

Note how the cursor now defaults to residing inside the text Entry box.

We can also disable widgets. To do that, we set a property on the widget. We can make the button disabled by adding this one line of Python code:

action.configure(state='disabled')    # Disable the Button Widget

After adding the above line of Python code, clicking the button no longer creates any action!

How it works...

This code is self-explanatory. We set the focus to one control and disable another widget. Good naming in programming languages helps to eliminate lengthy explanations. Later in this book, there will be some advanced tips on how to do this while programming at work or practicing our programming skills at home.

There's more...

Yes. This is only the first chapter. There is much more to come.

主站蜘蛛池模板: 锡林郭勒盟| 汤阴县| 高要市| 江安县| 枣庄市| 漳平市| 望江县| 陇西县| 赤峰市| 厦门市| 罗甸县| 广平县| 青川县| 景德镇市| 财经| 长乐市| 石狮市| 吉水县| 东至县| 兖州市| 德昌县| 陆良县| 榕江县| 大埔区| 房产| 肇州县| 大连市| 门头沟区| 横山县| 昆明市| 枣庄市| 乌海市| 敦煌市| 安阳县| 辉南县| 吕梁市| 堆龙德庆县| 太白县| 苏州市| 彰化市| 海丰县|