【问题标题】:How to change a value in an existing window and display it while it changes如何更改现有窗口中的值并在更改时显示它
【发布时间】:2022-12-30 05:05:25
【问题描述】:
import random

while 1:
    x = randomint(0,25)
    Print(x)

是否可以在 tkinter GUI 中打印“x”输出(只需更改现有窗口中的值而不打开新窗口以获得新值)?

我知道如何创建窗口并在窗口中显示文本。但是我不明白即使值在变化,如何在窗口中显示值

【问题讨论】:

  • 是的,有可能。当然,您不使用 print,因为它会输出到控制台。如何完成取决于您使用的 GUI 框架。

标签: python tkinter


【解决方案1】:

如果你想在 tkinter 中更新一个值,你可以使用一个标签,然后使用configure(或config)方法在每次变量更改时修改该值。

说明代码:

from tkinter import *

def update_value(value): 
    global label
    label.configure(text = value)

root = Tk()

#Creating a frame to contain a label and an entry
frame = Frame(root)
frame.grid(row = 0, column = 0, padx = 5, pady = 5, sticky = NSEW)

#Creating the label
label = Label(frame, text = "Label", bg = "black", fg = "white", font = ('Comic Sans', 15))
label.grid(row = 0, column = 0, padx = 5, pady = 5, ipadx = 5, ipady = 5, sticky = EW)

#Creating an entry
entry = Entry(frame, font = ('Comic Sans', 15), bg = "white", fg = "black")
entry.grid(row = 0, column = 1, padx = 5, pady = 5, ipadx = 5, ipady = 5, sticky = EW)

#Adding a key binding to entry so that everytime the user hits the enter key, the updated value shows in the label 
entry.bind("<Return>", lambda e: update_value(entry.get()))

root.mainloop()

每次用户在输入框中进行更改并按下回车键时,标签都会更新为输入框中的新值。

【讨论】:

    【解决方案2】:

    不要使用while条件。使用上面的相同,并添加小部件。

    代码:

    import tkinter as tk
    import random
    
    
    root = tk.Tk()
    
    x = random.randint(0,25)
    print(x)
    
    lb = tk.Label(root,  width=10)
    lb.pack() 
    lb.configure(text=x)
    
    root.mainloop()  
    

    结果图片:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2022-07-08
      • 1970-01-01
      相关资源
      最近更新 更多