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

Adding themes

You may recall that, while defining the Themes menu, we defined a color scheme dictionary containing the name and hexadecimal color codes as a key-value pair, as follows:

color_schemes = {
'Default': '#000000.#FFFFFF',
'Greygarious':'#83406A.#D1D4D1',
'Aquamarine': '#5B8340.#D1E7E0',
'Bold Beige': '#4B4620.#FFF0E1',
'Cobalt Blue':'#ffffBB.#3333aa',
'Olive Green': '#D1E7E0.#5B8340',
'Night Mode': '#FFFFFF.#000000',
}

The theme choice menu has already been defined. Let's add a callback command to handle the selected menu (2.12.py):

themes_menu.add_radiobutton(label=k, variable=theme_choice, command=change_theme).

Finally, let's define the change_theme function to handle the changing of themes, as follows:

def change_theme(event=None):
selected_theme = theme_choice.get()
fg_bg_colors = color_schemes.get(selected_theme)
foreground_color, background_color = fg_bg_colors.split('.')
content_text.config(background=background_color, fg=foreground_color)

The function is simple. It picks up the key-value pair from the defined color scheme dictionary. It splits the color into its two components and applies one color each to the Text widget foreground and background using widget.config().

Now, if you select a different color from the Themes menu, the background and foreground colors change accordingly.

This completes the iteration. We completed coding the shortcut icon toolbar and the functionality of the View menu in this iteration. In the process, we learned how to handle the Checkbutton and Radiobutton menu items. We also had a look at how to create compound buttons while reinforcing several Tkinter options that were covered in the previous sections.

主站蜘蛛池模板: 柯坪县| 万山特区| 万州区| 苗栗市| 汤原县| 团风县| 会昌县| 永吉县| 萝北县| 河东区| 马龙县| 崇信县| 察隅县| 鄄城县| 岢岚县| 吉安县| 若尔盖县| 广德县| 曲沃县| 会理县| 东乡县| 夏河县| 赣州市| 聊城市| 哈尔滨市| 隆化县| 德保县| 徐水县| 赣榆县| 平南县| 柏乡县| 茌平县| 乌海市| 浦东新区| 涡阳县| 微山县| 肥西县| 郓城县| 曲沃县| 蒙自县| 楚雄市|