如何获取用户输入并将该输入传递给Tkinter?

时间:2020-06-18 10:56:34

标签: python tkinter

我试图获取用户输入的文本,然后替换文本的大小写-例如如果输入“ hello”,将输出“ Helio”

This is what my Tkinter window looks like

这是我的代码:



from itertools import cycle
from tkinter import *


win = Tk()
win.title("Alternator")
win.resizable(0,0)


def Alternate():

   func = cycle([str.upper, str.lower])
   result = ''.join(next(func)(c) for c in entry.get() if c != '  ')
   return result




l1 = Label(win, text="Enter text: ")
entry = Text(win, width=50, height = 3, wrap=WORD)
button = Button(win, text="Alternator", width=20)
l2 = Label(win, text="Alternated text:")
output = Text(win, width=50, height=3, wrap=WORD)

l1.grid(row=1, column=1, padx=5, sticky=W)
entry.grid(row=2, column=1, columnspan=2, padx=5, pady=(0,10))
button.grid(row=3, column=1, columnspan=2, pady=5)
l2.grid(row=4, column=1, padx=5, sticky=W)
output.grid(row=5, column=1, columnspan=2, padx=5, pady=(0,10))

button.configure(command=Alternate)

win.mainloop()

解决此问题的正确方法是什么?我看到了各种相关的问题,但是没有一个基本的问题可以解决

2 个答案:

答案 0 :(得分:0)

要获取文本,您需要为entry.get()提供2个参数。 Here是一个很好的答案,它可以解释哪个。之后,您必须使用output.insert()设置文本。您可以根据自己的意愿进行更改,现在它会添加一行新行,并带有上方的替代文本。

def Alternate():
   func = cycle([str.upper, str.lower])
   result = ''.join(next(func)(c) for c in entry.get("1.0",END) if c != '  ')
   output.insert(END,result)
   #return result

答案 1 :(得分:-1)

我在这里有一些重要的提示和事实。首先,可以使用Text()小部件,而不是使用Entry()小部件,因为您只提供简单的单词作为输入。然后,您可以像这样在条目中获取字符

variable = name_of_entry.get()

然后,您可以替换字母的大小写,并在Label()中以纯文本形式显示由大小写字母组成的字母。

name_of_label.configure(text=variable)