Найти - Пользователи
Полная версия: Как нарисовать объект на Canvvas по данным из базы данных
Начало » Python для новичков » Как нарисовать объект на Canvvas по данным из базы данных
1
Yaroslam322
Есть приложение учета финансов, которое визуализирует расходы в виде круговой диаграммы. Данные для диаграммы берутся из бд. Надо нарисовать саму диаграмму.

Для этого я использую следующую функцию в классе main

 def view_records(self):
summ = self.db.c.execute('''SELECT SUM(costs) FROM finance''')
money_mass = self.db.c.execute('''SELECT costs FROM finance''')
money_mass.fetchall()
end = 0
for i in money_mass:
self.stats_field.create_arc(start=end, extend=3.6*(i//summ * 100), fill = "black")
end += 3.6*(i//summ * 100)

Но ничего не отрисовывается. Вопрос, как сделать это правильно?

файл программы прилагается https://github.com/Yaroslam/GUI_app/blob/master/main.py






FishHook
Yaroslam322
файл программы прилагается
где?
Yaroslam322
FishHook
отредачил
rami
В начале кода под блоком импортов вставляете список цветов для диаграммы:
 COLORS = ('black', 'blue', 'green', 'grey', 'purple', 'orange', 'maroon', 'gold')  #если не хватит, добавить цветов

Функция:
     def view_records(self):
        summ = self.db.c.execute('''SELECT SUM(costs) FROM finance''').fetchone()
        money_mass = self.db.c.execute('''SELECT costs FROM finance''').fetchall()
        end = 0
        for i,m in enumerate(money_mass):
            ext = 360 * m[0] / summ[0]
            self.stats_field.create_arc(20, 20, 200, 200, start=end, extent=ext, fill=COLORS[i])
            end += ext
Yaroslam322
rami
В начале кода под блоком импортов вставляете список цветов для диаграммы:
Спасибо, все работает
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB