如何使用跟踪更新选项菜单中的值

时间:2018-07-26 05:47:59

标签: python-3.x tkinter

我制作了两个帧,其中第一帧有两个选项菜单,用于从用户那里获取有关矩阵的行和列的输入。我想从optionmenu中获取值并使用trace()方法对其进行更新,但是我不确定如何做到这一点。

第二帧是根据行和列自动生成输入字段,应根据选项菜单中的更改进行更新。 但是我的代码的问题在于,它仅采用optionmenu的默认值1。

def createmat_window():
    mat = Toplevel(cal)
    frame1 = Frame(mat,bg='red',width=500,height=100)
    frame1.pack(fill=BOTH, expand=1)
    choices = {1, 2, 3, 4, 5, 6, 7}

    rowA= Label(frame1, text='MAT A\nROWS')
    rowA.pack(side=LEFT,padx=10,pady=10)
    pop1 = OptionMenu(frame1, opt1,*choices)
    pop1.pack(side=LEFT)
    opt1.set('1')
    m = opt1.get()

    columnA = Label(frame1, text='MAT A\nCOLUMNS')
    columnA.pack(side=LEFT,padx=10,pady=10)
    pop2 = OptionMenu(frame1, opt2, *choices)
    pop2.pack(side=LEFT)
    opt2.set('1')
    n = opt2.get()

    frame2 = Frame(mat, bg='yellow', width=500, height=100)
    frame2.pack()

    for i in range(int(m)):
        for j in range(int(n)):
            d = int(m)*int(n)
            ent = {'ent'+str(x): StringVar() for x in range(d)}
            en = ['en'+str(x) for x in range(d)]

            for x in range(d):
                en[x]=Entry(frame2,textvariable=ent['ent'+str(x)])
                en[x].grid(row=i,column=j)

0 个答案:

没有答案