Entry Widget не будет правильно работать в функции для вызова другого модуля - PullRequest
0 голосов
/ 10 октября 2018

Я передаю виджет Entry StringVal в функцию, которая просматривает то, что вы печатаете на другом модуле.т.е. a1 = 123456. Когда я набираю «a1» в виджете «Ввод», моя функция возвращает только «a1», а не соответствующее ей значение «123456».Я не знаю, как заставить функцию def userd настроить метку как 123456, а не как a1.

from tkinter import *

class App(Frame):
    def __init__(self, master):
        super(App, self).__init__(master)
        self.grid()
        self.create_widgets()

    def create_widgets(self):
        a1 = 123456
        a2 = 456789
        a3 = 789456

        self.Userin = StringVar()

        self.user_input = Entry(self, insertwidth=0, width=30,
        textvariable=self.Userin)
        self.user_input.grid(row=2)
        self.user_input.insert(0, "0")

        self.bttn1 = Button(self, padx = 15, pady = 15, text = "Call A1",
        command = lambda: self.getdata(a1))
        self.bttn1.grid(row = 0, column = 0)

        self.bttn2 = Button(self, padx=15, pady=15, text="Call your entry",
        command=lambda: self.userd(self.Userin.get()))
        self.bttn2.grid(row=0, column=1)

        self.label = Label(self,bg = "white", padx = 35, pady = 25, text = "***")
        self.label.grid(row = 1)

    def userd(self,xxx):          
        self.label.configure(text = xxx)

    def getdata(self,row):
        self.label.configure(text = row)

root = Tk()
root.geometry("300x150")
App(root)
root.mainloop()

1 Ответ

0 голосов
/ 13 октября 2018

Ваш код работает нормально.Ваша функция возвращает «a1», потому что вы больше ничего не кодируете.

Добавьте следующие условия:

from tkinter import *

class App(Frame):
    def __init__(self, master):
        super(App, self).__init__(master)
        self.grid()
        self.create_widgets()

    def create_widgets(self):
        self.a1 = 123456
        self.a2 = 456789
        self.a3 = 789456

        self.Userin = StringVar()

        self.user_input = Entry(self, insertwidth=0, width=30,
        textvariable=self.Userin)
        self.user_input.grid(row=2)
        self.user_input.insert(0, "0")

        self.bttn1 = Button(self, padx = 15, pady = 15, text = "Call A1",
        command = lambda: self.getdata(self.a1))
        self.bttn1.grid(row = 0, column = 0)

        self.bttn2 = Button(self, padx=15, pady=15, text="Call your entry",
        command=lambda: self.userd(self.Userin.get()))
        self.bttn2.grid(row=0, column=1)

        self.label = Label(self,bg = "white", padx = 35, pady = 25, text = "***")
        self.label.grid(row = 1)

    def userd(self,xxx):
        if xxx == "a1":
            self.label.configure(text = self.a1)
        elif xxx == "a2":
            self.label.configure(text = self.a2)
        elif xxx == "a3":
            self.label.configure(text = self.a3)

    def getdata(self,row):
        self.label.configure(text = row)

root = Tk()
root.geometry("300x150")
App(root)
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...