Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
-2 / 8 / 2
Регистрация: 10.11.2008
Сообщений: 776

Привязка метода к событию виджета

28.05.2016, 20:18. Показов 2157. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как привязать к событию виджета метод с параметром
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from tkinter import*
 
def func_print(event, str):
    print("text")
 
root = Tk()
 
txt = Text()
txt.pack()
str = " "
btn = Button(root)
btn["text"] = "Ok"
btn.bind("<Button-1>", func_print(str))
btn.pack()
root.mainloop()
Ошибка в коде, пытаюсь из текстового поля текст записать в переменную

Добавлено через 59 секунд
И что из себя представляет кнопка, это, что ли словарь над классами
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.05.2016, 20:18
Ответы с готовыми решениями:

Не работает привязка функции к событию нажатия клавиши
from tkinter import * root = Tk() def pressed(event): print(event) root.geometry((&quot;400x400&quot;)) root.bind(&quot;a&quot;,...

Привязка в событию метода
Допустим, на C# можно объявить делегат и просто написать следующее: someListener += myMethodDelegate; Есть ли подобное в Java?

Привязка функции к событию
Как в VBA привязать функцию к ,например, нажатию кнопки ? Допустим имеется следующая функция Function Функция() Dim x, y, z x = 20 ...

9
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
28.05.2016, 20:26
Во 1, никогда нельзя использовать такой импорт
Цитата Сообщение от Knjagskij Посмотреть сообщение
from tkinter import*
Во 2 нельзя переопределять стандартные функции
Цитата Сообщение от Knjagskij Посмотреть сообщение
str = " "
Цитата Сообщение от Knjagskij Посмотреть сообщение
def func_print(event, str):
В 3 я бы не тратил на твоем месте время на бестолковый tkinter

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import tkinter
 
 
def func_print(event, data):
    print(data)
 
 
data = "привет мир"
 
root = tkinter.Tk()
txt = tkinter.Text()
txt.pack()
btn = tkinter.Button(root, text='OK')
btn.bind("<Button-1>", lambda event: func_print(event, data))
btn.pack()
root.mainloop()
Цитата Сообщение от Knjagskij Посмотреть сообщение
И что из себя представляет кнопка, это, что ли словарь над классами
Кнопка и остальные виджеты, это классы. Просто они поддерживают доступ по ключу, потому что реализуют спец методы.
0
-2 / 8 / 2
Регистрация: 10.11.2008
Сообщений: 776
28.05.2016, 20:53  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
Во 1, никогда нельзя использовать такой импорт
Почему?
А что плохого в tkintere и чем его заменить?

Добавлено через 34 секунды
Кстати, почему без mainloop() все работает?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
28.05.2016, 21:03
Цитата Сообщение от Knjagskij Посмотреть сообщение
Почему?
Почему нельзя импортировать сразу все?
Цитата Сообщение от Knjagskij Посмотреть сообщение
А что плохого в tkintere и чем его заменить?
https://www.cyberforum.ru/pyth... 39264.html
Цитата Сообщение от Knjagskij Посмотреть сообщение
Кстати, почему без mainloop() все работает?
Не знаю в какой из параллельных вселенных работает. Код физически без этой строки не может работать.
0
-2 / 8 / 2
Регистрация: 10.11.2008
Сообщений: 776
28.05.2016, 21:13  [ТС]
Как я понял, mainloop() должен быть последним в программе, так как это бесконечный цикл и за ним не имеет смыла ничего писать?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
28.05.2016, 21:17
Да.
0
-2 / 8 / 2
Регистрация: 10.11.2008
Сообщений: 776
28.05.2016, 21:38  [ТС]
Рекомендуется заменить tkinter на PyQt, но PyQt интегрурует Python в С++, как я понял...
А можно обойтись без установки С++?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
28.05.2016, 21:52
Knjagskij, никто не интегрирует python в плюсы, pyqt это python обертка над сишной библиотекой.
Плюсы тебя ни кто не заставляет ставить, чтобы использовать pyqt, ты ставишь уже скомпилированную библиотеку и радуешься жизни.
Вообще для справки, очень много библиотек для python написано на сях.
0
-2 / 8 / 2
Регистрация: 10.11.2008
Сообщений: 776
29.05.2016, 15:45  [ТС]
Скачал PyQt, там есть __init__.py, cpp и h файлы, но не ни pro файла, ни exe, вообще не понятно, как с ним работать и README не помогает, может, кто-нибудь скинет ссылку для скачивания и объяснит последовательность действий?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
29.05.2016, 15:59
https://sourceforge.net/projec... Qt-4.11.4/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.05.2016, 15:59
Помогаю со студенческими работами здесь

QtScript привязка виджета
Привет всем! Читаю книгу &quot;Qt 5.3&quot; за авторством Шлее. На странице 721 русским по белому приведён код: #include...

Привязка кнопки к событию UserDeletingRow либо к SendKeys
Хочу сделать чтобы по нажатию кнопки выполнялось удаление строки из DataGridView. Пробовал привязать кнопку к событию UserDeletingRow ...

QtDesigner. Привязка виджета к границе формы
Здравствуйте. Недавно начал изучать PyQt и сразу возник вопрос: как привязать виджет к границе формы? Например имеется элемент QListWidget,...

Привязка события чекбокса (checked) к событию с произвольным блоком через класс (css)
У меня есть скрипт, который это делает через id, приходится при добавлении новых элементов на сайт плодить эти айдишники, хотелось бы...

Присвоение вызова метода событию с условием
Всем привет. Мне необходимо чтоб при нажатии кнопки происходила проверка соблюдения условий и если все условия соблюдены, то должен...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru