def update_category_list(): '''выводит наши значения пунктов расходов и доходов в окно ''' lbox.delete(0, END) articles_category = db.get_articles_category() for article in articles_category: lbox.insert(END, article)
def del_category(): '''удаляем не нужный пункт расходов или доходов ''' articles_category = db.get_articles_category() print(lbox.curselection()) select = list(lbox.curselection()) select.reverse() for i in select: lbox.delete(i) articles_category.pop(i) print(articles_category) db.write_article_category(articles_category)
def add_list_category(new_category): '''добавляем в наш основной список,новые добавленные пользователем значения, которые будут записаны в наш файл ''' articles_category = db.get_articles_category() if new_category not in articles_category: articles_category.append(new_category) elif new_category == '': mb.showerror('Ошибка', 'Вы не ввели значение!') else: mb.showerror('Ошибка', 'Такая категория уже есть!') db.write_article_category(articles_category) update_category_list()
def refresh_sort_category(): widgets.combo_category['values'] = db.get_articles_category()
def create_widget(window): '''функция создания кнопок и их активация ''' global ent_rashod_dohod, variable, options, text_result, select_value, frame_2, label_date_vision, combo_category options = db.get_articles_category() variable = StringVar(window) frame_1 = LabelFrame(window, text='Данные', height=300, width=600) frame_2 = LabelFrame(window, text='Списки расходов и доходов', height=500, width=700) frame_3 = LabelFrame(window, text='Результаты', height=200, width=700) combo_category = Combobox( frame_2, values=options, postcommand=sort_article.refresh_sort_category, width=12, state='readonly', ) combo_type = Combobox(frame_2, width=5, state='readonly') combo_type['values'] = ['Все', 'Расходы', 'Доходы'] combo_category.current(0) combo_type.current(0) # ширина экрана w = window.winfo_screenwidth() # высота экрана h = window.winfo_screenheight() # значение по умолчанию variable.set(options[0]) select_value = OptionMenu(frame_1, variable, *options) btn_rashod = Button(frame_1, text='Добавить расходы', command=add_type_rashod, font=('Arial', 12)) btn_dohod = Button(frame_1, text='Добавить доходы', command=add_type_dohod, font=('Arial', 12)) btn_append_item = Button(frame_1, text='Добавить свой вариант', command=category.create_window_category_change, font=('Arial', 10)) btn_result = Button(frame_2, text='Oтсортировать', font=('Arial', 12), command=sort_article.sort_article_list) btn_delete = Button(frame_2, text='Удалить', command=del_article, font=('Arial', 12)) btn_demo = Button(frame_2, text='Демо', command=conftest.request_user) btn_calendar = Button(frame_2, text='Сортировка по дате', command=cal.create_window_calendar) btn_range_date = Button(frame_2, text='Сортировка по периоду', command=cal.create_window_range_date) ent_rashod_dohod = Entry(frame_1, width=40, font=('Arial', 12)) label_text_select = Label(frame_1, text='Выбирите нужный пункт расходов и доходов:', font=('Arial', 12)) label_text_select_type = Label(frame_1, text='Введите сумму расходов или доходов:', font=('Arial', 12)) label_text_result = Label(frame_1, text='Результаты:', font=('Arial', 12)) label_text_dohod = Label(frame_1, text='Сумма доходов', font=('Arial', 12)) label_text_summ = Label(frame_1, text='ИТОГО') label_text_expence = Label(frame_3, text='Расходы', font=('Arial', 12)) label_text_income = Label(frame_3, text='Доходы', font=('Arial', 12)) label_text_all = Label(frame_3, text='Итого', font=('Arial', 12)) label_date_vision = Label(frame_2, text="", font=('Arial', 12)) text_result = Listbox(frame_2, width=65, height=20, selectmode=EXTENDED, font=('Arial', 12)) scroll = Scrollbar(frame_2, orient="vertical", command=text_result.yview) text_result.config(yscrollcommand=scroll.set) text_result_expence = Listbox(frame_3, width=15, height=1, font=('Arial', 13)) text_result_income = Listbox(frame_3, width=15, height=1, font=('Arial', 13)) text_result_all = Listbox(frame_3, width=15, height=1, font=('Arial', 13)) select_value.place(relx=0.03, rely=0.15) btn_rashod.place(relx=0.03, rely=0.70) btn_dohod.place(relx=0.33, rely=0.70) btn_delete.place(relx=0.55, rely=0.90) btn_append_item.place(relx=0.30, rely=0.15) btn_result.place(relx=0.75, rely=0.90) btn_demo.place(relx=0.35, rely=0.90) btn_calendar.place(relx=0.36, rely=0.02) btn_range_date.place(relx=0.57, rely=0.02) text_result.place(relx=0.10, rely=0.09) text_result_expence.place(relx=0.33, rely=0.03) text_result_income.place(relx=0.33, rely=0.18) text_result_all.place(relx=0.33, rely=0.33) ent_rashod_dohod.place(relx=0.03, rely=0.55) label_text_select.place(relx=0.03, rely=0.03) label_text_select_type.place(relx=0.03, rely=0.40) label_text_expence.place(relx=0.03, rely=0.03) label_text_income.place(relx=0.03, rely=0.18) label_text_all.place(relx=0.03, rely=0.33) #label_date_vision.place scroll.place(relx=0.95, rely=0.09, height=380) frame_1.place(relx=0.02, rely=0.02) frame_2.place(relx=0.47, rely=0.02) frame_3.place(relx=0.47, rely=0.70) combo_category.place(relx=0.10, rely=0.02) combo_type.place(relx=0.25, rely=0.02) result.show_result(text_result_income, text_result_expence, text_result_all)