【问题标题】:probleme for retrieve value from fonction从函数中检索值的问题
【发布时间】:2020-06-07 08:54:12
【问题描述】:

当我在函数构造中打印它们时,我无法从函数 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

【问题讨论】:

  • nbarticle 函数需要 1 个参数。例如,您在哪里调用 self.nbarticle(3)?顺便说一句,您确实需要返回该属性,因为该属性已经在整个类中更改了。

标签: python-3.x tkinter optionmenu


【解决方案1】:

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

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)

【讨论】:

    【解决方案2】:

    我也找到了这个解决方案,但我无法为我的 while 检索价值

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 2011-09-23
      • 2019-02-13
      • 1970-01-01
      相关资源
      最近更新 更多