【问题标题】:I want to take user input and output it inside GUI我想接受用户输入并在 GUI 中输出
【发布时间】:2021-07-19 22:20:43
【问题描述】:

我想接受用户输入并在 GUI 中输出... 我的代码

from tkinter import *
root = Tk()
root.geometry("644x344")

def printSomething():
    label = Label(root, text="???")
    label.grid(row=1, column=2)

ok=Label(root, text="Type your name").grid(row=2,column=1)
entryvalue = StringVar()

entry= Entry(root, textvariable=entryvalue)
entry.grid(row=2, column=2)


button = Button(root, text="Print Me", command=printSomething)
button.grid(row=3, column=2)


root.mainloop()

【问题讨论】:

    标签: python tkinter pycharm tkinter-entry


    【解决方案1】:

    要从输入框中获取文本,请使用inputbox.get()。另外,不要将ok 变量设置为Label(root, text="Type your name").grid(row=2,column=1)。这将被设置为 NoneType,所以这样做

    ok = Label(root, text="Type your name").grid(row=2,column=1)
    ok.grid(row=2, column=1)
    

    这是你的代码:

    from tkinter import *
    root = Tk()
    root.geometry("644x344")
    
    def printSomething():
        label = Label(root, text=entry.get())
        label.grid(row=1, column=2)
    
    ok=Label(root, text="Type your name")
    ok.grid(row=2,column=1)
    
    entryvalue = StringVar()
    
    entry= Entry(root, textvariable=entryvalue)
    entry.grid(row=2, column=2)
    
    
    button = Button(root, text="Print Me", command=printSomething)
    button.grid(row=3, column=2)
    
    
    root.mainloop()
    

    【讨论】:

    • 你为什么使用ok = Label(root, text="Type your name").grid(row=2, column=1)?在该代码中,ok 将设置为None 而不是tkinter.Label。请将.grid(...) 移到新行
    • @LizzardOk,我会的,但那是从 OP 复制的代码。 \@OP 请点击绿色复选标记接受答案
    【解决方案2】:

    首先,为了接受并在屏幕上显示输出,您必须使用 Label widgetCanvas Text。由于您的代码没有更新 Label 小部件,因此我在这里做您想做的事情。 首先,在主窗口中创建一个 Label 小部件, 通过 using.get() 方法获取用户输入, 打印并显示用户输入。

    from tkinter import *
    root = Tk()
    root.geometry("644x344")
    
    def printSomething():
        label.config(text=entry.get())
    
    
    ok=Label(root, text="Type your name")
    ok.grid(row=2,column=1)
    entryvalue = StringVar()
    
    entry= Entry(root, textvariable=entryvalue)
    entry.grid(row=2, column=2)
    
    
    button = Button(root, text="Print Me", command=printSomething)
    button.grid(row=3, column=2)
    
    #Create a Label to print the Name
    label= Label(root, text="", font= ('Helvetica 14 bold'), foreground= "red3")
    label.grid(row=1, column=2)
    
    root.mainloop()
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-22
      • 2021-05-09
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多