Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 33

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

10.04.2022, 18:33. Показов 1232. Ответов 0

Студворк — интернет-сервис помощи студентам
Есть меню с функциями и тд, вопрос в следующем: как изменить размер шрифта текста , который появляется в редакторе Text(который появляется с помощью хоткея) с помощью контекстного меню, а также как с помощью хоткея удалить виджет Text(т.е. в исходное состояние). В программе это находится примерно где функция def Hotkey_1():, я пытался создавать функции например def Resize_25() или def Resize_50() и в них задавать text_1.config(font = 20) размер текста, но выдаёт, что неизветсно text_! и тд


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
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()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2022, 18:33
Ответы с готовыми решениями:

Изменить приложение так, чтобы контекстное меню появлялось лишь тогда, когда произведен щелчок правой клавишей мыши
Помогите пожалуйстаааа!!! Есть пример, Изменить приложение так, чтобы контекстное меню появлялось лишь тогда, когда произведен щелчок...

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

Как создать контекстное меню при нажатии правой кнопкой мыши по DataGridView
Создать то я создала, но для того чтоб открылось меню сначала надо щелкнуть по ячейке левой кнопкой мыши. А можно ли чтоб оно сразу после...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2022, 18:33
Помогаю со студенческими работами здесь

Как добавить пункт в контекстное меню при перетаскивании файла правой кнопкой мыши
Добрый день. Подскажите, пожалуйста, каким образом можно добавить свой пункт контекстного меню через реестр при перетаскивании папки?

Как создать контекстное меню при нажатии правой кнопкой мыши по элементу listView
help,help,help.....

Как сделать контекстное меню при нажатии правой кнопки мыши на на одну из столбцов в ListView
Так же нужно получить индекс этого столбца Помогите как это сделать

Контекстное меню правой кнопки мыши
Как через реестр изменить вид контекстного меню правой кнопки мыши, чтобы пункт &quot;Создать&quot; был на самом верху?

Контекстное меню для правой кнопки мыши
Нужно, чтобы при нажатии на правую кнопку мыши, было меню добавить и удалить текст, по умолчанию встали горячие кнопки Ctrl+V/C но хотелось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru