簡體   English   中英

如何在TkInter(Python)中的小部件之間傳輸數據

[英]How to transfer data between widgets in TkInter (Python)

我正在制作一個帶有GUI的程序。 我希望在單擊按鈕后,在Entry小部件中輸入的文本將顯示在Label小部件中。 到目前為止,按下按鈕后出現的唯一情況是:

(PY_VAR0 + PY_VAR1)^ PYVAR2

這是整個程序的代碼,我使用類作為框架布局。 如果需要,也可以提供此代碼,但我認為它不相關。

import math
from tkinter import *

app = Tk()

a_input = ParamIn(app, "Please enter A:")
a_input.pack()

b_input = ParamIn(app, "Please enter B:")
b_input.pack()

n_input = ParamIn(app, "Please enter n:")
n_input.pack()

int1 = IntVar()
int2 = IntVar()
int3 = IntVar()

form = StringVar()
form.set('(%s + %s)^%s' % (int1, int2, int3))

def update_form():
    number1 = a_input.number.get()
    number2 = b_input.number.get()
    number3 = n_input.number.get()
    int1.set(number1)
    int2.set(number2)
    int3.set(number3)
    a_input.number.delete(0, END)
    b_input.number.delete(0, END)
    n_input.number.delete(0, END)

Button(app, text = "Contine", command = update_form).pack(pady = 10)

Label(app, relief = SUNKEN, textvariable = form).pack(padx = 10, pady = 5, side = "bottom")

app.mainloop()  

我不確定為什么在mainloop之前的程序結束時Label沒有更新,因為我覺得我的邏輯是正確的。 我是編程新手,所以這可能只是一個愚蠢的錯誤。

每次想要更改標簽時,都需要調用form.set(...) 它不會因為您更改用於定義其初始值的變量而自動更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM