[Python编程(第4版)].(Programming.Python.4th.Edition).Mark.Lutz.文字版

(yzsuai) #1

rows = []
for i in range(numrow):
cols = []
for j in range(numcol):
ent = Entry(relief=RIDGE)
ent.grid(row=i, column=j, sticky=NSEW)
ent.insert(END, '%d.%d' % (i, j))
cols.append(ent)
rows.append(cols)


sums = []
for i in range(numcol):
lab = Label(text='?', relief=SUNKEN)
lab.grid(row=numrow, column=i, sticky=NSEW)
sums.append(lab)


def onPrint():
for row in rows:
for col in row:
print(col.get(), end=' ')
print()
print()


def onSum():
tots = [0] * numcol
for i in range(numcol):
for j in range(numrow):
tots[i] += eval(rows[j][i].get()) # sum column
for i in range(numcol):
sums[i].config(text=str(tots[i])) # display in GUI


def onClear():
for row in rows:
for col in row:
col.delete('0', END)
col.insert(END, '0.0')
for sum in sums:
sum.config(text='?')


import sys
Button(text='Sum', command=onSum).grid(row=numrow+1, column=0)
Button(text='Print', command=onPrint).grid(row=numrow+1, column=1)


Figure 9-35. A larger grid of input fields


576 | Chapter 9: A tkinter Tour, Part 2

Free download pdf