0

当我在函数中打印它们时,我无法从函数 nbarticle 中检索值

我不知道我是否让它是最好的方法,如果 in 可以在我的函数中做到这一点?

class  second_frame():
"""docstring for  second_frame"""
def __init__(self):
    self.nombre_article = 1

def facture(self):
    window2 = Tk()
    width_value=window.winfo_screenwidth()
    height_value=window.winfo_screenheight()
    window2.geometry("%dx%d+0+0" % (width_value, height_value))
    window.destroy()
    window2.title("Veleos     |     Facture")
    tkinter.Radiobutton(window2, text="Professionnel", value=1).grid(row=1, column=1)
    tkinter.Radiobutton(window2, text="Particulier", value=2).grid(row=1, column=2)

    tkinter.Label(window2, text="Nom : ").grid(row=2, column=1)
    nom = tkinter.Entry(window2).grid(row=3, column=1)

    tkinter.Label(window2, text="Prénom : ").grid(row=2, column=2)
    prenom = tkinter.Entry(window2).grid(row=3, column=2)

    tkinter.Label(window2, text="Adresse : ").grid(row=4, column=1 , columnspan=2)
    adresse = tkinter.Entry(window2).grid(row=5, column=1, columnspan=2)

    tkinter.Label(window2, text="Ville : ").grid(row=6, column=1)
    ville = tkinter.Entry(window2).grid(row=7, column=1)

    tkinter.Label(window2, text="Code Postal : ").grid(row=6, column=2)
    cp = tkinter.Entry(window2).grid(row=7, column=2)

    tkinter.Label(window2, text="Nombre d'article : ").grid(row=8, column=1, columnspan=2)
    OptionList = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] 
    var = StringVar(window2)
    var.set(OptionList[0])
    drop = tkinter.OptionMenu(window2, var, *OptionList, command=second_frame.nbarticle).grid(row=9, column=1, columnspan=2)

    print(self.nombre_article)
    window2.mainloop()

def nbarticle(self, nombreArticle):
    self.nombre_article = nombreArticle
    return self.nombre_article
4

2 回答 2

0

我为寻找的人找到了这个解决方案

var = StringVar(window2)
var.set(OptionList[0])
var.trace_add('write', lambda *args: print(var.get()))
drop = tkinter.OptionMenu(window2, var, *OptionList).grid(row=9, column=1, columnspan=2)
于 2020-06-07T09:48:34.463 回答
0

我也找到了这个解决方案,但我暂时无法检索价值

nb_article = var.trace_add('write', lambda *args: var.get())
drop = tkinter.OptionMenu(window2, var, *OptionList).grid(row=9, column=1, columnspan=2)
row = 10
nb = 1

if len(nb_article) > 10:
    nb_article = 0
else:
    while nb_article != 0:
        tkinter.Label(window2, text="Article ").grid(row=row, column=1, columnspan=2)
        row += 1
        article = tkinter.Entry(window2).grid(row=row, column=1, columnspan=2)
        row += 1
        nb_article -= 1
于 2020-06-12T17:24:31.133 回答