@adaskl

Как связать контекстное меню, вызванное правой клавишей мыши, и текста в виджете Text?

есть меню с функциями и тд, вопрос в следующем: как изменить размер шрифта текста , который появляется в редакторе Text(который появляется с помощью хоткея) с помощью контекстного меню, а также как с помощью хоткея удалить виджет Text(т.е. в исходное состояние). В программе это находится примерно где функция def Hotkey_1():
Код

from tkinter import *
root = Tk()
menubar = Menu(root)
 
def Info_fish():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Наиболее многочисленная группа современных позвоночных животных, которая объединяет более 25 тысяч видов.Рыбы являются обитателями водной среды, они дышат жабрами и передвигаются с помощью плавников. Рыбы распространены в разных уголках планеты: от высокогорных водоёмов до океанических глубин, от полярных вод до экваториальных. ")
   label.pack()

def Info_shark1():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Хрящевой скелет, отсутствует плава­тельный пузырь, нет жаберных крышек; хищники")
   label.pack()

def Info_shark2():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Тигровая акула, китовая акула, катран")
   label.pack()

def Info_karp1():
   filewin = Toplevel(root)
   label = Label(filewin, text = "В основном пресно­водные рыбы, на че­люстях зубов нет, но есть глоточные зубы для измельчения пищи")
   label.pack()

def Info_karp2():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Сазан, карась, плотва, лещ")
   label.pack()   

def Info_osetr1():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Костно-хрящевый скелет, чешуя - пять рядов крупных кост­ных пластин, между которыми находятся мелкие пластинки")
   label.pack()

def Info_osetr2():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Осетр, белуга, стерлядь")
   label.pack()
def Info_seldo1():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Большинство - стай­ные морские рыбы")
   label.pack()

def Info_seldo2():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Сельдь, сардина, шпрот")
   label.pack()
def Info_tresko1():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Отличительный при­знак - наличие усика на подбородке; большинство - хо-лодноводные мор­ские рыбы")
   label.pack()

def Info_tresko2():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Пикша, салака, на­вага, налим, трес­ка")
   label.pack()
def Info_priz1():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Эти рыбы постоянно обитают в пресной воде. Некоторые, например караси и лини, предпочитают стоячие водоёмы.Другие, такие как пескарь обыкновенный, хариус, голавль, приспособились к жизни в текущих водах рек.")
   label.pack()

def Info_priz2():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Сюда относят рыб, которые для размножения переходят из морской воды в пресную (например, лосось и осетровые) или из пресной воды идут размножаться в солёную (некоторые виды угрей)")
   label.pack()

def Info_priz3():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Населяют опреснённые участки морей, устья крупных рек: таковы многие сиги, вобла, бычок, речная камбала.")
   label.pack()

def Info_priz4():
   filewin = Toplevel(root)
   label = Label(filewin, text = "Живут в солёной воде морей и океанов. Толщу воды населяют такие рыбы, как анчоус, скумбрия, тунец. У дна живут скат, камбала.")
   label.pack()
def Info_prognoz():
   filewin = Toplevel(root)
   label = Label(filewin, text = "День хорошо подходит для того, чтобы учиться, собирать и анализировать информацию, искать ответы на непростые вопросы. \nВы внимательны и серьезны, не довольствуетесь тем, что лежит на поверхности, стараетесь всегда добраться до истины. \nВсе, что вы узнаете сегодня, обязательно пригодится в ближайшее время.")
   label.pack()

def Hotkey_1(*args):
   text_1 = Text()
   text_1.insert(INSERT, "Текст для изменения")
   text_1.bind('<Button-3>', popup)
   text_1.pack()
def Hotkey_2(*args):
   text_1 = Text()
   text_1.forget()

def resize_25(*args):
   text_1.config(font = 20)


   
contex_menu = Menu(tearoff=0)

def popup(event):
    global x, y
    x = event.x
    y = event.y
    contex_menu.post(event.x_root, event.y_root)
x = 0
y = 0

contex_menu.add_command(label = "Размер шрифта:25%", command = resize_25)
contex_menu.add_command(label = "Размер шрифта:50%")
contex_menu.add_command(label = "Размер шрифта:75%")
contex_menu.add_command(label = "Размер шрифта:100%")
contex_menu.add_command(label = "Размер шрифта:125%")

#menus   
menufish = Menu(menubar, tearoff=0)
menufish6= Menu(menufish, tearoff=0)
menufish5= Menu(menufish, tearoff=0)
menufish4 = Menu(menufish, tearoff=0)
menufish3 = Menu(menufish, tearoff=0)
menufish2 = Menu(menufish, tearoff=0)
menufish1 = Menu(menufish, tearoff=0)

menufish7 = Menu(menufish6, tearoff=0)
menufish7_1 =  Menu(menufish6, tearoff=0)
menufish7_2 =  Menu(menufish6, tearoff=0)
menufish7_3 =  Menu(menufish6, tearoff=0)
menufish7_4 =  Menu(menufish6, tearoff=0)
menubar.add_cascade(label="Рыбы", menu= menufish)
menufish.add_command(label="О рыбках",command=Info_fish)
menufish.add_separator()
menufish.add_cascade(label="Акулы",menu = menufish1)
menufish.add_cascade(label="Карпообразные", menu = menufish2)
menufish.add_cascade(label="Осетровые",menu = menufish3)
menufish.add_cascade(label="Сельдеобразные", menu = menufish4)
menufish.add_cascade(label="Тресковые", menu = menufish5)
menufish.add_separator()
menufish.add_cascade(label="Экогруппы", menu = menufish6)

menufish6.add_cascade(label="Пресноводные рыбы", menu = menufish7_1)
menufish6.add_cascade(label="Проходные рыбы", menu = menufish7_2)
menufish6.add_cascade(label="Солоноватые рыбы", menu = menufish7_3)
menufish6.add_cascade(label="Морские рыбы", menu = menufish7_4)

menunotfish = Menu(menubar, tearoff=0)
menubar.add_cascade(label= "Другие рыбы", menu=menunotfish )
menunotfish.add_command(label="Месяц",command=Info_prognoz)
menunotfish.add_command(label="Год",command=Info_prognoz)
menunotfish.add_command(label="День",command=Info_prognoz)

#Hotkeys
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="Добавление",command = Hotkey_1, accelerator= "Ctrl+Q")
root.bind_all("<Control-q>",Hotkey_1)
helpmenu.add_command(label="Удаление", command = Hotkey_2, accelerator= "Ctrl+W")
root.bind_all("<Control-w>",Hotkey_2)
menubar.add_cascade(label="Хоткеис", menu=helpmenu)


#menus_2
menufish1.add_command(label = "Основные признаки отряда", command=Info_shark1)
menufish1.add_command(label = "Представители", command=Info_shark2)
menufish2.add_command(label ="Основные признаки отряда",command=Info_karp1)
menufish2.add_command(label ="Представители",command=Info_karp2)
menufish3.add_command(label ="Основные признаки отряда",command=Info_osetr1)
menufish3.add_command(label ="Представители",command=Info_osetr2)
menufish4.add_command(label ="Основные признаки отряда",command=Info_seldo1)
menufish4.add_command(label ="Представители",command=Info_seldo2)
menufish5.add_command(label ="Основные признаки отряда",command=Info_tresko1)
menufish5.add_command(label ="Представители",command=Info_tresko2)

menufish7_1.add_command(label ="Основные признаки",command= Info_priz1)
menufish7_2.add_command(label ="Основные признаки",command= Info_priz2)
menufish7_3.add_command(label ="Основные признаки",command= Info_priz3)
menufish7_4.add_command(label ="Основные признаки",command= Info_priz4)
root.config(menu=menubar)                   
root.mainloop()
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы