моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
- import tkinter as tk
- from tkinter import messagebox
-
- def change_text_color(color):
- # 获取选中的文本范围
- start_index = text_widget.tag_ranges(tk.SEL)
- if start_index:
- # 如果文本被选中,只改变选中文本的颜色
- tag_name = f"color_{color}"
- # 移除选中文本上的所有颜色标签
- for tag in text_widget.tag_names(start_index[0]):
- if tag.startswith("color_"):
- text_widget.tag_remove(tag, start_index[0], start_index[1])
- # 添加新的颜色标签
- text_widget.tag_add(tag_name, start_index[0], start_index[1])
- text_widget.tag_config(tag_name, foreground=color)
- else:
- # 如果没有文本被选中(即全选文本),改变所有文本的颜色
- text_widget.tag_remove("color_all", "1.0", tk.END)
- text_widget.tag_add("color_all", "1.0", tk.END)
- text_widget.tag_config("color_all", foreground=color)
-
- def on_ctrl_y(event):
- # 当按下Ctrl+Y时,调用change_text_color函数
- change_text_color("red")
-
- root = tk.Tk()
-
- # 创建一个Text控件
- text_widget = tk.Text(root)
- text_widget.pack(fill=tk.BOTH, expand=True)
-
- # 绑定Ctrl+Y快捷键
- text_widget.bind("<Control-y>", on_ctrl_y)
-
- # 创建菜单栏
- menu_bar = tk.Menu(root)
-
- # 创建颜色菜单
- color_menu = tk.Menu(menu_bar, tearoff=0)
- color_menu.add_command(label="Red", command=lambda: change_text_color("red"))
- color_menu.add_command(label="Blue", command=lambda: change_text_color("blue"))
- color_menu.add_command(label="Green", command=lambda: change_text_color("green"))
- color_menu.add_command(label="Black", command=lambda: change_text_color("black"))
- menu_bar.add_cascade(label="Color", menu=color_menu)
-
- # 将菜单栏添加到窗口
- root.config(menu=menu_bar)
-
- root.mainloop()