【问题标题】:Python tkinter - radio buttons, how to change outcome according to user selection multiple times?Python tkinter - 单选按钮,如何根据用户选择多次更改结果?
【发布时间】:2021-04-06 15:34:01
【问题描述】:

所以在我的代码中,我有一个单选按钮菜单。我已将它们分配为根据选择的单选按钮显示一串文本。但是,如果用户在选择一个选项后改变主意,我怎样才能使它动态到哪里,结果会改变? 例如,假设我的菜单选项是: -蓝色 -红色的 -黄色

用户选择蓝色。然后文本“蓝色”显示为该选择的结果。但是现在,用户将他们的选择改为红色。如果他们现在点击菜单中的“红色”选项,我该如何撤消以前的文本并在其位置显示新文本?

我希望我的问题有意义。

【问题讨论】:

  • 如果用户选择蓝色,如何将文本更改为“蓝色”,如果用户稍后选择“红色”,则如何将文本更改为“红色”。
  • 是的,我知道,但它只是复合到先前显示的文本上。如何确保它删除以前的文本并在其位置显示新文本?因此,如果用户点击菜单上的多个选项,每次他们做出选择时不会有很长的一行文字?
  • edit 在您的问题中包含minimal reproducible example,以显示您如何更改颜色。
  • 我们需要看到 minimal reproducible example 来帮助解决这个问题
  • 您应该创建一次输出文本并根据用户选择更新其文本。

标签: python user-interface tkinter anaconda radio-button


【解决方案1】:

您应该创建一次结果标签并将textvariable 选项设置为与用于这些单选按钮的 tkinter 变量相同。然后每次选择其中一个单选按钮时,结果标签都会更新。

下面是一个简单的例子:

import tkinter as tk

root = tk.Tk()
root.geometry("200x100")

menubar = tk.Menu(root)
root.config(menu=menubar)

menu = tk.Menu(menubar, tearoff=0)
var1 = tk.StringVar()
for color in ("blue", "red", "yellow"):
    menu.add_radiobutton(label=color, variable=var1, value=color)
menubar.add_cascade(label="Color", menu=menu)

tk.Label(root, textvariable=var1, font="Arial 32 bold", width=10).pack()

root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多