- Tkinter GUI Application Development Blueprints(Second Edition)
- Bhaskar Chaudhary
- 226字
- 2021-06-24 18:35:11
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.
- Java語言程序設計
- Getting started with Google Guava
- 工程軟件開發技術基礎
- Visual C++串口通信技術詳解(第2版)
- Python數據挖掘與機器學習實戰
- Learning Zurb Foundation
- FPGA Verilog開發實戰指南:基于Intel Cyclone IV(進階篇)
- 汽車人機交互界面整合設計
- Python:Deeper Insights into Machine Learning
- Distributed Computing with Python
- 深入理解MySQL主從原理
- C語言解惑:指針、數組、函數和多文件編程
- 面向對象程序設計及C++實驗指導(第3版)
- IPython Notebook Essentials
- Java從入門到精通(第7版)