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

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.

主站蜘蛛池模板: 昌邑市| 同心县| 东乡| 建始县| 银川市| 营山县| 许昌市| 若尔盖县| 昌平区| 大余县| 弋阳县| 华宁县| 腾冲县| 金沙县| 屏山县| 东安县| 南城县| 遂川县| 遵化市| 遂溪县| 肇东市| 岐山县| 新丰县| 扎兰屯市| 乌鲁木齐县| 呼伦贝尔市| 尼玛县| 沁水县| 铜鼓县| 罗甸县| 鞍山市| 开封县| 宁南县| 吉木萨尔县| 齐齐哈尔市| 衡东县| 梁河县| 二连浩特市| 定陶县| 平远县| 广汉市|