|
0 / 0 / 0
Регистрация: 07.02.2023
Сообщений: 4
|
|
KeyPress для кнопки07.02.2023, 13:36. Показов 1993. Ответов 13
Нужно что бы в результате события KeyPress для кнопки, изменится её размер и надпись.
Код 1 Кликните здесь для просмотра всего текста
from tkinter import *
def key (event): button['text'] = 'Привет' button['width'] = 20 button['height'] = 4 root = Tk() root.title('Мой проект') root.geometry('200x100+200+200') button=Button(text='Ok', width=5) button.pack(pady = 20) root.bind('<KeyPress>', key) Этот код работает, кнопка меняется, но KeyPress применим к окну root Код 2 Кликните здесь для просмотра всего текста
from tkinter import *
def key (event): button['text'] = 'Привет' button['width'] = 20 button['height'] = 4 root = Tk() root.title('Мой проект') root.geometry('200x100+200+200') button=Button(text='Ok', width=5) button.pack(pady = 20) button.bind('<KeyPress>', key) Этот код не работает, где KeyPress применил для кнопки. Советовали использовать атрибут command (button = Button(text = "text",command = имя функции)), но насколько мне известно, атрибут command применяется, если к кнопке применяется событие Click , а мне нужно событие KeyPress. Для связывания кнопки с обработчиком какого-либо события, применяется метод bind(). Но если событие Click, которое в принципе, по умолчанию является событием для кнопки, то метод bind() можно не использовать. Тогда можно упростить код, используя атрибут command. Выходит, этот атрибут мне не поможет. Ещё читал, так ли это на самом деле не знаю, что KeyPress применяется к главному окну и ко всему, что на нём?
0
|
|
| 07.02.2023, 13:36 | |
|
Ответы с готовыми решениями:
13
KeyPress для TableWidget |
|
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
|
||||||
| 07.02.2023, 19:09 | ||||||
Сообщение было отмечено pit0n4ik как решение
Решение
Проблема в том что кнопка не в фокусе
1
|
||||||
|
Заблокирован
|
||||||
| 07.02.2023, 20:16 | ||||||
|
pit0n4ik,
добавил параметр root в виджет Button, чтобы он добавлялся в главное окно , переместил кнопку.оператор pack перед операторами bind, чтобы правильно отобразить кнопку перед установкой привязок событий , удалил кнопку.оператор focus_set, так как в нем нет необходимости и он может замедлить работу кода.
0
|
||||||
|
0 / 0 / 0
Регистрация: 07.02.2023
Сообщений: 4
|
||
| 07.02.2023, 20:21 [ТС] | ||
|
focus_set() передаёт фокус виджету, в данном случае кнопке. Сделал так: from tkinter import * def key (event): button['text'] = 'Куликов' button['width'] = 20 button['height'] = 4 root = Tk() root.title('Мій проект') root.geometry('200x100+200+200') button = Button(text='Ok', width=5) button.focus_set() button.bind('<KeyPress>', key) button.pack(pady = 20) Теперь, при нажатии любой клавиши, KeyPress передаётся кнопке и происходит задуманное) Большое спасибо!
0
|
||
|
Заблокирован
|
|
| 07.02.2023, 20:23 | |
|
0
|
|
|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
|
| 07.02.2023, 20:25 | |
|
OlegNeChe, ой, тебя опередил еще один копипастер((((
Кстати, почему, когда ты пишешь "полотно" о коде у тебя нет гр. ошибок, а в одном слоче ты допускаешь их 4???
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2023
Сообщений: 4
|
|||
| 07.02.2023, 20:49 [ТС] | |||
|
В любом случае спасибо! Добавлено через 10 минут
0
|
|||
|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
|
| 07.02.2023, 21:06 | |
|
pit0n4ik, потому что подсказал не он, а нейросеть chatgpt
Посмотрите его другие ответы. Сравните его ответ с ответомTimutGin
1
|
|
|
0 / 0 / 0
Регистрация: 07.02.2023
Сообщений: 4
|
||
| 07.02.2023, 21:28 [ТС] | ||
|
Мне не ответ 100% нужен, а подсказка, куда копать.
0
|
||
|
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
|
|||
| 07.02.2023, 21:47 | |||
|
Добавлено через 9 минут
1
|
|||
|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
||
| 07.02.2023, 21:54 | ||
|
TimutGin, значит другая нейросеть
Добавлено через 23 секунды деградируете как он
0
|
||
|
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
|
|
| 07.02.2023, 21:58 | |
|
0
|
|
|
Йуный плагиат-падаван)
176 / 119 / 45
Регистрация: 17.10.2022
Сообщений: 566
|
|
| 07.02.2023, 22:42 | |
|
TimutGin, что несешь? твой код один в один как у чатжпт
0
|
|
|
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
|
||
| 07.02.2023, 23:15 | ||
|
0
|
||
| 07.02.2023, 23:15 | |
|
Помогаю со студенческими работами здесь
14
Событие KeyPress для текстбокса
Обработка KeyPress для нескольких TextBox C++ Настройка события KeyPress для dataGridViewTextBoxColumn
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
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
Использованы. . .
|