c.itemconfigure(CURRENT, fill=choice(colors)) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

c.itemconfigure(CURRENT, fill=choice(colors))

Поиск

event.y+R))

 

c.itemconfigure(CURRENT, fill=choice(colors))

 

oval = c.create_oval((100-R, 100-R, 100+R, 100+R),

 

fill="Black")

c.tag_bind(oval, "<1>", change_ball) tk.mainloop()

 

 

Здесь нарисован кружок радиуса R,с ним связана функция change_ball() по нажатию кнопки мыши.В указанной функции заданы новые координаты кружка(его центр


 


расположен в месте щелчка мыши)и затем изменен цвет случайным образом методом itemconfigure().Тег CURRENT вTkinterиспользован для указания объекта,который принял событие.

 

Графическое приложение на Tkinter

 

Теперь следует рассмотреть небольшое приложение,написанное с использованием Tkinter.В этом приложении будет загружен файл с графическим изображением.

 

Приложение будет иметь простейшее менюFileс пунктамиOpenиExit,а также виджетCanvas, на котором и будут демонстрироваться изображения (опять потребуется пакет PIL):

 

from Tkinter import *

 

import Image, ImageTk, tkFileDialog global img, imgobj

 

def show():

 

global img, imgobj

 

# Запрос на имя файла

 

filename = tkFileDialog.askopenfilename()

if filename != (): # Если имя файла было задано

пользователем

 

# рисуется изображение из файла src_img = Image.open(filename) img = ImageTk.PhotoImage(src_img)

# конфигурируется изображение на рисунке c.itemconfigure(imgobj, image=img, anchor="nw")

 

tk = Tk()

 

main_menu = Menu(tk) # формируется меню tk.config(menu=main_menu) # меню добавляется к окну file_menu = Menu(main_menu) # создается подменю main_menu.add_cascade(label="File", menu=file_menu)

 

# Заполняется меню File file_menu.add_command(label="Open", command=show)

file_menu.add_separator() # черта для отделения пунктов меню file_menu.add_command(label="Exit", command=tk.destroy)

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 76; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.)