Mam problem z uzyskaniem wartości z Entry na najwyższym poziomie. mój kod:
Wprowadz=Toplevel()
Wprowadz1=Entry(Wprowadz)
Wprowadz1.grid(row=0, column=0)
PrzyciskWprowadz=Button(Wprowadz, text="Wprowadź", width=30, height=2, command= lambda imie=Wprowadz1.get(), nazwisko="nazwisko", dimie=str("dimie"), klasa=str("klasa") : fun_sprowadzdosql(imie, nazwisko, dimie, klasa))
PrzyciskWprowadz.grid(row=1, column=0)
Chcę uzyskać wartość Wprowadz1, aby przekazać ją do funkcji.
1 odpowiedź
Musisz wywołać metodę .get()
po kliknięciu przycisku. Wołasz to podczas definiowania przycisku.
Jeszcze jedna rada: nie używaj lambda
, zwłaszcza jeśli nie zawiera więcej niż jednej funkcji. Chociaż lambda
ma swoje zastosowania, kod używający lambda
może być trudny do odczytania, trudny do napisania i trudny do debugowania w czymkolwiek z wyjątkiem najprostszych przypadków.
PrzyciskWprowadz=Button(
Wprowadz, text="Wprowadź", width=30, height=2, command= callback
)
def callback():
imie=Wprowadz1.get()
fun_sprowadzdosql(imie, "nazwisko", "dimie", "klasa")
Jeśli wolisz używać lambda
, zadziała:
PrzyciskWprowadz=Button(
Wprowadz, text="Wprowadź", width=30, height=2,
command= lambda wprowadz1=Wprowadz1: fun_sprowadzdosql(wprowadz1.get(), "nazwisko", "dimie", "klasa"))
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.