Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python tkinter понять какая кнопка была нажата.. / 4 сообщений из 4, страница 1 из 1
29.09.2015, 18:07
    #39064538
Cpt. Gray
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python tkinter понять какая кнопка была нажата..
Доброго времени

Такой вопрос, есть 4 кнопки, которые отображаются как 2х2:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
...
        for i in range(4):
            for j in range(4):
                btn = Button(self)
                btn.bind('<Button-1>', self.left_click)
                btn.grid(row=i, column=j)
...
    def left_click(self, event):
        print("left")
...



Как можно сделать так, чтобы при нажатии кнопки выводились соотв. i и j нажатой кнопки?
Через event можно получить координаты х, у - но я не хочу вычислять i и j через размеры кнопок и т.д.
Можно ли как-то передать в метод left_click ссылку на саму кнопку которая нажимается (тогда я смогу добавить btn.i = i, btn.j = j и потом обратиться к ним в методе left_click)?
btn.bind('<Button-1>', self.left_click(btn.i, btn,j)) или нечто подобное?
Или как это можно сделать?
...
Рейтинг: 0 / 0
29.09.2015, 18:45
    #39064574
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python tkinter понять какая кнопка была нажата..
Cpt. Gray,

Я не шарю в tkinter'е, но, я думаю, ты можешь тут заюзать partial function
типа

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
from functools import partial
...
        for i in range(4):
            for j in range(4):
                btn = Button(self)
                btn.bind('<Button-1>', partial(self.left_click, i, j))
                btn.grid(row=i, column=j)
...
    def left_click(self, i, j, event):
        print("left")
...
...
Рейтинг: 0 / 0
29.09.2015, 18:57
    #39064585
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python tkinter понять какая кнопка была нажата..
Ну или передать ссылку на саму кнопку
Код: python
1.
2.
3.
partial(self.left_click, btn)

def left_click(self, btn, event):


Up to you,
...
Рейтинг: 0 / 0
30.09.2015, 12:47
    #39065078
Cpt. Gray
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Python tkinter понять какая кнопка была нажата..
NekZ ,
Работает, спасибо большое!
Первый вариант как раз то, что нужно :)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Python tkinter понять какая кнопка была нажата.. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]