コード例 #1
0
ファイル: category.py プロジェクト: Rinatgi/budget
def update_category_list():
    '''выводит наши значения пунктов 
    расходов и доходов в окно
    '''
    lbox.delete(0, END)
    articles_category = db.get_articles_category()
    for article in articles_category:
        lbox.insert(END, article)
コード例 #2
0
ファイル: category.py プロジェクト: Rinatgi/budget
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)
コード例 #3
0
ファイル: category.py プロジェクト: Rinatgi/budget
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()
コード例 #4
0
ファイル: sort_article.py プロジェクト: Rinatgi/budget
def refresh_sort_category():
    widgets.combo_category['values'] = db.get_articles_category()
コード例 #5
0
ファイル: widgets.py プロジェクト: Rinatgi/budget
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)