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

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.

主站蜘蛛池模板: 绥中县| 福清市| 伊金霍洛旗| 巫溪县| 昭通市| 呈贡县| 武鸣县| 东乡县| 天长市| 肥东县| 宜春市| 定南县| 潼南县| 响水县| 南京市| 霍林郭勒市| 贡山| 高州市| 铜山县| 泾阳县| 钦州市| 沁源县| 德格县| 科尔| 梁河县| 永仁县| 西吉县| 齐齐哈尔市| 读书| 汤阴县| 固镇县| 密云县| 天祝| 保康县| 金华市| 延边| 合阳县| 灵川县| 沙洋县| 雷波县| 盐亭县|