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

Implementing the View menu

Tkinter offers the following three varieties of menu item:

  • Checkbutton menu items: These let you make a yes/no choice by checking/unchecking the menu item
  • Radiobutton menu items: These let you choose an option from many different options
  • Cascade menu items: These menu items only open up to show another list of choices

The following View menu shows these three menu item types in action:

The first three menu items in the View menu let users make a definite yes or no choice by checking or unchecking thems. These are examples of the Checkbutton menu.

The Themes menu item in the preceding screenshot is an example of a Cascade menu. Hovering over this Cascade menu simply opens another list of menu items. However, we can also bind a menu item by using the postcommand=callback option. This can be used to manage something just before bringing up the cascading menu item's contents and is often used for dynamic list creation.

Within the Cascade menu, you are presented with a list of choices for your editor's theme. However, you can only select one theme. Selecting one theme deselects any previous selections. This is an example of the Radiobutton menu.

We will not present the entire code here (refer to the 2.03.py code in the code bundle). However, the example code used to add these three types of menu item is as follows:

view_menu.add_checkbutton(label="Show Line Number", variable=show_line_no)
view_menu.add_cascade(label="Themes", menu=themes_menu)
themes_menu.add_radiobutton(label="Default", variable=theme_name)

Now, we need to track whether a selection has been made by adding a variable, which can be BooleanVar(), IntVar(), or Stringvar(), as discussed in Chapter 1, Meet Tkinter.

This concludes our first iteration. In this iteration, we laid down the majority of the visual elements of the text editor. Now it's time to add some functionalities to the editor.

主站蜘蛛池模板: 子洲县| 西丰县| 义马市| 莱州市| 靖安县| 桃园市| 贞丰县| 富宁县| 天台县| 多伦县| 曲水县| 吉安县| 师宗县| 胶南市| 东乡族自治县| 改则县| 昔阳县| 托克托县| 泸溪县| 江达县| 深泽县| 靖江市| 郴州市| 吉木萨尔县| 上杭县| 武宁县| 十堰市| 广昌县| 金坛市| 南昌县| 文水县| 鄂尔多斯市| 邛崃市| 瓮安县| 峨眉山市| 德钦县| 轮台县| 边坝县| 桑植县| 双鸭山市| 五华县|