0

我需要帮助来总结树视图中 GUI python 的列。坚持如何输入def SummisionExpense,因为它是费用跟踪器的结果。

from tkinter import *
from tkinter import ttk
from tkinter import messagebox

def SummisionExpense():

Money = Tk()

Money.title('Money')

Money.geometry('700x500')

Tab = Notebook(Money)

Frame1 = Frame(Tab, width=500,height=500)

Tab.add(Frame1, text='Expense')

Title  = StringVar()

Expense = StringVar()

TotalExpense = StringVar()


RowExpenseTitle = ttk.Label(Frame1, text='Title',font=(None,18))

RowExpenseTitle.grid(row=1, column=0, padx=5, pady=5,sticky='w')



DailyExpense = ttk.Label(Frame1, text='Expense',font=(None,18))

DailyExpense.grid(row=2, column=0, padx=5, pady=5,sticky='w')




RowTotalExpense = ttk.Label(Frame1, text='Total Expenses', font=(None,18))

RowTotalExpense.grid(row=3, column=0, padx=5, pady=5,sticky='w')




BF1Add = ttk.Button(Frame1, text='Add',command=Addexpense)

BF1Add.grid(row=4, column=1,padx=5,pady=5,sticky='w',ipadx=10,ipady=10)

BF1Total = ttk.Button(Frame1, text="Total", command=SummisionExpense)

BF1Total.grid(row=4, column=2,padx=5,pady=5,sticky='w',ipadx=10,ipady=10)


Money.mainloop()
4

1 回答 1

0

这是答案

from tkinter import *

from tkinter import ttk

from tkinter import messagebox

from tkinter.ttk import Notebook

from tkcalendar import DateEntry


def Addexpense():

     a = ExpenseDate.get()
     b = Title.get()
     c = Expense.get()
     data = [a,b,c]
     # here is how to sum your expenses 
     MoneyCare.counter += int(c)
     TotalExpense.delete(0,END)
     TotalExpense.insert(END,(str(MoneyCare.counter)))
     TVExpense.insert('','end',values=data)


MoneyCare = Tk()

MoneyCare.title('MoneyCare by Haikal & Nasri')

MoneyCare.geometry('700x500')

# i added this counter
MoneyCare.counter = 0

Tab = Notebook(MoneyCare)

Frame1 = Frame(Tab, width=500,height=500)

Frame2 = Frame(Tab, width=500,height=500)

Tab.add(Frame1, text='Expense')

Tab.add(Frame2, text='Income')

Tab.pack(fill=BOTH, expand=1)

#FOR CALENDAR, WE INSTALLED tkcalendar

#TAB 1 FOR EXPENSES

Title  = StringVar()

Expense = StringVar()

TotalExpense = StringVar()

#------ROW 0--------

RowExpenseDate = ttk.Label(Frame1, text='Date',font=(None,15))

RowExpenseDate.grid(row=0, column=0, padx=5, pady=5,sticky='w')

ExpenseDate = DateEntry(Frame1, width=19,bg='blue', fg='white',font=(None,18))

ExpenseDate.grid(row=0,column=1, padx=5, pady=5,sticky='w')


#-------ROW 1--------

RowExpenseTitle = ttk.Label(Frame1, text='Title',font=(None,18))

RowExpenseTitle.grid(row=1, column=0, padx=5, pady=5,sticky='w')

ExpenseTitle = ttk.Entry(Frame1, textvariable=Title,font=(None,18))

ExpenseTitle.grid(row=1, column=1, padx=5, pady=5,sticky='w')


#-------ROW 2-------

DailyExpense = ttk.Label(Frame1, text='Expense',font=(None,18))

DailyExpense.grid(row=2, column=0, padx=5, pady=5,sticky='w')

DailyExpense1 = ttk.Entry(Frame1, textvariable=Expense,font=(None,18))

DailyExpense1.grid(row=2, column=1, padx=5, pady=5,sticky='w')


#-------ROW 3-------

RowTotalExpense = ttk.Label(Frame1, text='Total Expenses', font=(None,18))

RowTotalExpense.grid(row=3, column=0, padx=5, pady=5,sticky='w')

TotalExpense = ttk.Entry(Frame1, textvariable=TotalExpense,font=(None,18))

TotalExpense.grid(row=3, column=1, padx=5, pady=5,sticky='w')

#-------ROW 4-------

BF1Add = ttk.Button(Frame1, text='Add',command=Addexpense)

BF1Add.grid(row=4, column=1,padx=5,pady=5,sticky='w',ipadx=10,ipady=10)

# i commanted this out because
# you dont need that function any more

#BF1Total = ttk.Button(Frame1, text="Total", command=SummisionExpense)
#BF1Total.grid(row=4, column=2,padx=5,pady=5,sticky='w',ipadx=10,ipady=10)

TVList =['Date','Title','Expense']

TVExpense = ttk.Treeview(Frame1, column=TVList, show='headings', height=5)

for i in TVList:

    TVExpense.heading(i, text=i.title())

TVExpense.grid(row=5, column=0, padx=5,pady=5,sticky='w',columnspan=3)

MoneyCare.mainloop()
于 2021-01-16T21:30:43.413 回答