0
我的代碼有問題。我想使用Tkinter創建一個程序,在這個程序中,您將給出特定數量的列和原始數據,然後按下Addition或Deduction按鈕,您將選擇您想要執行的操作。這裏是我的代碼Tkinter:矩陣加法或扣除按鈕
from Tkinter import *
import random
root = Tk()
root.wm_geometry("400x300+20+40")
class ADialog:
def __init__(self, parent):
top = self.top = Toplevel(parent)
Label(top, text="X").pack()
self.e = Entry(top) #RAWS
self.e.pack(padx=15)
Label(top, text="Y").pack()
self.w = Entry(top) #COLUMNS
self.w.pack(padx=15)
b = Button(top, text="OK", command=self.ok)
b.pack(pady=5)
def ok(self):
self.x = self.e.get()
self.y = self.w.get()
Label(root,text="X= "+ self.x).pack()
Label(root,text="Y= "+ self.y).pack()
self.top.destroy()
Button(root, text="Addition", command=lambda:Addition(int(self.x),int(self.y))).pack() #ADDITION BUTTON
Button(root, text="Deduction", command=lambda:Deduction(int(self.x),int(self.y))).pack() # DEDUCTION BUTTON
def Addition(x,y):
for i in range(x):
c=[]
for j in range(y):
c.append(random.randint(10,100))
M.append(c)
for i in range(x):
a=[]
for j in range(y):
a.append(random.randint(10,100))
N.append(a)
for i in range(x):
v=[]
for j in range(y):
v.append(M[i][j]+N[i][j])
K.append(v)
for i in range(x):
Label(root,text=K[i]).pack()
def Deduction(x,y):
for i in range(x):
c=[]
for j in range(y):
c.append(random.randint(10,100))
M.append(c)
for i in range(x):
a=[]
for j in range(y):
a.append(random.randint(10,100))
N.append(a)
for i in range(x):
v=[]
for j in range(y):
v.append(M[i][j]-N[i][j])
K.append(v)
for i in range(x):
Label(root,text=K[i]).pack()
M=[]
N=[]
K=[]
message=StringVar()
message.set("Complete the Matrix")
Label(root, textvariable=message).pack(padx=30)
root.update()
dial = ADialog(root)
root.wait_window(dial.top)
message.set("Matrix completed")
root.update()
root.mainloop()
Button(root, text="Done", command=root.destroy).pack() #Button Done
現在我的代碼工作,但有一些問題。 它們是:
- 如果你按下按鈕釦除或增加你會得到你的結果,但隨後如果您嘗試按其他按鈕,您將得到同樣的結果。
- 按鈕「完成」永遠不會出現......
你能幫助我嗎?
我有一個小錯誤,但我修好了。但問題依然如故。請幫幫我 – GeorgeDavidKing