簡體   English   中英

如何在python中使用tkinter將文本框條目傳遞給變量

[英]How to pass a textbox entry to variables using tkinter in python

我有一些相當簡單的代碼來獲取urlstring的值。

我查看了所有其他問題,但似乎找不到可以適用的相關答案

一些代碼首先在Ipython控制台中出現,我期望它會在以后更改,並且確實在Ipython控制台中從按鈕按下時的硬編碼變量中獲取了一個值,但似乎無法將文本框的值添加到變量中,然后使用它們代替?

amount = '1'
cur1 = input('What Currency would you like to trade from? ')
cur2 = input('What Currency would you like to trade to? ')
cur1_1 = StringVar()
cur2_1 = StringVar()
#i = 0 


#Textboxes for user input
txtcur1 = Entry(root, font="Helvetica 11 bold",bg="white", width=6, textvariable=cur1_1)
txtcur1.place(x=110, y=50)
txtcur2 = Entry(root, font="Helvetica 11 bold",bg="white", width=6, textvariable=cur2_1)
txtcur2.place(x=110, y=75)
#End


def results():
    t = datetime.utcnow()  
    url1  = "http://www.xe.com/currencyconverter/convert/" + "?Amount=" + amount + "&From=" + cur1 + "&To=" + cur2
    url2 = "http://www.xe.com/currencyconverter/convert/" + "?Amount=" + amount + "&From=" + cur2_1 + "&To=" + cur1_1

但是對於我一生,我無法將文本框中的變量放入變量cur1_1cur2_1並且遇到了typeerror。

url2 = "http://www.xe.com/currencyconverter/convert/" + "?Amount=" + amount + "&From=" + cur2_1 + "&To=" + cur1_1
TypeError: must be str, not StringVar

當我將其更改為字符串時,它說必須是3位數字長,我以為這會比這簡單一些。 有什么幫助嗎?

同樣,一旦獲得了匯率的返回值,我就需要將它們轉換為decimal to 9decimal to 9並顯示逗號以供貨幣使用。

完整代碼在這里https://pastebin.com/uPWyPXMZ

您的問題似乎是您在使用cur1_1cur2_1好像它們是字符串一樣,所以您應該調用它們的StringVar.get()方法來訪問它們的字符串值。

一個簡單的例子:

import tkinter as tk

def show_text():
    label_text.set('Heh, heh, heh, you said, "' + entry_text.get() + '"')

root = tk.Tk()

entry_text = tk.StringVar()
entry = tk.Entry(root, width=10, textvariable=entry_text)
entry.pack()

button = tk.Button(root, text="Click Me", command=show_text)
button.pack()

label_text = tk.StringVar()
label = tk.Label(root, textvariable=label_text)
label.pack()

root.mainloop()

在輸入框中輸入文本,然后單擊按鈕。 文本將在創建時通過與Entry關聯的StringVar.get()方法從輸入框傳輸到標簽。

暫無
暫無

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

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