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

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.

主站蜘蛛池模板: 孙吴县| 南华县| 通城县| 鸡泽县| 梅河口市| 乌拉特前旗| 云浮市| 寻乌县| 襄汾县| 台南县| 丁青县| 沙洋县| 黑龙江省| 龙州县| 沁源县| 巴彦淖尔市| 双峰县| 朝阳区| 年辖:市辖区| 始兴县| 河北省| 金华市| 潼关县| 松溪县| 大足县| 昌吉市| 榆社县| 涡阳县| 定远县| 建平县| 襄垣县| 隆子县| 泌阳县| 古丈县| 临猗县| 绍兴市| 武义县| 墨江| 新源县| 巴塘县| 商河县|