Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Фаер
792 / 398 / 260
Регистрация: 09.12.2011
Сообщений: 786
Записей в блоге: 53

Python 3.2. Объекты Canvas

07.12.2012, 19:10. Показов 1540. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть вот такой кусок скрипта:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def figure(k):
    global lk
    lk[k].create_line(2,2,31,31,width=3)
    lk[k].create_line(31,2,2,31,width=3)
    
def graphfield():
    global lk
    frame2=Frame(window)
    lk=[];x=0;y=0;k=0
    for i in range(0,9):
        y+=1
        can=Canvas(frame2)
        can.config(height=30,width=30)
        lk.append(can)
        lk[k].bind('<ButtonPress-1>',figure(k))
        if i%3==0:
            x+=1
            y=1
        lk[k].grid(row=x,column=y)
        lk[k].create_rectangle(2,2,31,31,width=2)
        k+=1
    frame2.pack(side=TOP)
Проблема моя заключается в том, что функция figure() вызывается ещё при конструировании виджета, а должна по щелчку на нем. В результате, получается, что все клетки заполняются крестиками до того, как пользователь их кликает. Как можно это исправить?

Добавлено через 23 минуты
Всё, я сам разобрался. Решил проблему так:

подправил функцию figure():
Python
1
2
3
4
5
def figure(event):
    global lk
    can=event.widget
    can.create_line(2,2,31,31,width=3)
    can.create_line(31,2,2,31,width=3)
и в строке с bind написал так:
Python
1
lk[k].bind('<ButtonPress-1>',figure)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.12.2012, 19:10
Ответы с готовыми решениями:

Python объекты
Здравствуйте,подскажите , пожалуйста, как на Python'e должен выглядеть объект?есть кусок кода из Jscript, нужно реализовать на python: ...

Python Нужно в классе triangle сравнить объекты
Подскажите нужно сравнить объекты в классе Triangle Не получается кто разбирается напишите как это правильно вроде бы представляю как...

Python tkinter canvas
Создал формучку на tkinter добавил на формучку канвас. Вопрос как сдвинуть канвас(по умолчанию но в верхнем левом углу). ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2012, 19:10
Помогаю со студенческими работами здесь

Графика в Python /tkinter/Canvas
Подскажите, как убрать эти рамки вокруг первого и второго холста/

Не загружается изображение в canvas, ошибок нет, Python 3
Не загружается изображение в canvas, ошибок нет, Python 3. Нажимаю кнопку и выбираю картинку, ничего не происходит, полотно так и...

Tkinter + OpenCV + Python 3 для вывода видеопотока на Canvas!
Ребята нужна помощь! Вкратце ...нужно вывести видеопоток (с вебкамеры) , после нажатия Buttona жилательно на Canvas! И после закрытия...

Python->Tkinter->Canvas получение картинки из поля для рисования
Здравствуйте, столкнулся с проблемой, требуется получить картинку из поля для рисования (self.canv), чтобы программно обработать...

объекты Canvas
Изобразите окружность диаметром d, перемещающуюся по вертикали через центр экрана.


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru