Программа "Геометрические фигуры"

Идея заключается в следующем. При нажатии на кнопки ("Треугольник", "Прямоугольник" и др.) на холсте появляется соответствующая фигура, а в текстовом поле ее определение.

При щелчке по фигуре, расположенной на холсте, она меняется на другую, но тоже относящуюся к той же группе (например, треугольники или эллипсы).

Внизу холста могут появляться пояснения, характеризующие очередную фигуру (например, "прямоугольный треугольник").

Интересно так же "нарисовать" сектора, дуги и сегменты на эллипсе, чтобы продемонстрировать, как они образуются

Программа "Определитель дней" (Tk)

В отличие от программы, написанной с использованием PyQt, здесь приходится "эмулировать" поле даты, т.к. подобный компонент в Tkinter и его расширениях найти не удалось.

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

Скроллеры (Scrollbar). Получение данных из списков (Listbox)

Скрипт выводит в окно два списка со скроллерами, кнопку и холст.

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

Проблема. После выбора элемента во одном списке, в другом снимается выделение. Пользователь не видит пары координат, а только последнюю координату.

Теги

Разноцветные линии

Надо получить линии разного цвета. Количество линий при этом заранее неизвестно, их может быть достаточно много.

Для каждой линии цвет определяется случайным образом.

Осталось непонятным, как переводится десятичное представление числа в шестнадцатеричный формат.

Теги

Размещение виджет

from tkinter import *
window = Tk()
canv = Canvas(window,width=500,height=500,bg="white")
 
lab_ent1 = Label(window,text="First point:")
ent1 = Entry(window,width=2)
lab_ent2 = Label(window,text="Second point:")
ent2 = Entry(window,width=2)
but_select = Button(window,text="Paths")
lab_minpath = Label(window,text="XXXXXX")
 
lab_list = Label(window,text="Graph:")
list_graphs = Listbox(window,selectmode=SINGLE,height=6)
but_all = Button(window,text="All graphs")
 
canv.grid(row=0,column=0,rowspan=40)
lab_ent1.grid(row=0,column=1,sticky=E,padx=10)
ent1.grid(row

Tkinter. Прорисовка точек и путей на холсте

# Скрипт размещает на холсте точки и маршруты из файлов
 
# Загрузка данных из файлов
points = {}
for line in open('points.txt'):
    line = line.split('\n')
    line = line[0]
    line = line.split(' ')
    line[1] = int(line[1])
    line[2] = int(line[2])
    points[line[0]] = line[1:]
 
graphs = {}
for line in open('graphs.txt'):
    line = line.split('\n')
    line = line[0]
    line = line.split(' ')
    graphs[line[0]] = line[1:]
 
 
from tkinter import *
window = Tk()
canv = Canvas(window,width=500,height=500,bg="white")
 
for i in points: # прорисовк