Python里tkinter如何重置单选按钮?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python里tkinter如何重置单选按钮?相关的知识,希望对你有一定的参考价值。

Python里tkinter如何重置单选按钮 ,让他返回一开始所有按钮全都没被选中的状态?

参考技术A 打开图像时,使用单选按钮注释值。在
在列表中收集此值

因此,在这个例子中,我有2个复合词,列表将有2个注释。在

在import Tkinter as tk

from PIL import ImageTk, Image

from tkFileDialog import askopenfilename

cmp_list = ["VU435DR","VU684DR"]

li = []

li_final = []

def sel():

selection = str(var.get())

if selection == "1":

li.append("Antagonist")

elif selection == "2":

li.append("Agonist")

for i in range(len(cmp_list)):

root = tk.Tk()

var = tk.IntVar()

ig = str(cmp_list[i] + '.png')

img = ImageTk.PhotoImage(Image.open(ig))

panel = tk.Label(root,image=img)

panel.pack(side = "top",fill="none",expand="no")

#w = tk.Text(height=2,width=50)

#w.pack(side='right")

q = tk.Radiobutton(root,text="Antagonist",command=sel,value=1,variable=var)

q.pack()

r = tk.Radiobutton(root,text="Agonist",command=sel,value=2,variable=var)

r.pack()

root.mainloop()

print li
参考技术B 把函数打开,封装好就可以运行了。 参考技术C · Python tkinter 单选框组件用于tkinter GUI里添加单选按钮,单选框可以添加文本和图像。当单选框勾选时,可以执行指定的函数,或者获取勾选的值。使用语法widget = Radiobutton( master, parameter=value, ... )master:按钮控件的父容器 parameter ...

Python tkinter Entry 小部件状态通过单选按钮切换

【中文标题】Python tkinter Entry 小部件状态通过单选按钮切换【英文标题】:Python tkinter Entry widget status switch via Radio buttons 【发布时间】:2011-09-09 22:21:00 【问题描述】:

一个简单的问题(对于像我这样的 tkinter 新手来说不是那么简单):我正在构建一个 GUI,我希望有两个单选按钮来驱动 Entry 小部件的状态(启用或禁用),用户将进入其中输入数据。当按下第一个单选按钮时,我希望禁用条目;当按下第二个单选按钮时,我希望禁用条目。

这是我的代码:

from Tkinter import *

root = Tk()
frame = Frame(root)

#callbacks
def enableEntry():
    entry.configure(state=ENABLED)
    entry.update()

def disableEntry():
    entry.configure(state=DISABLED)
    entry.update()

#GUI widgets
entry = Entry(frame, width=80)
entry.pack(side='right')

var = StringVar()
disableEntryRadioButton = Radiobutton(frame, text="Disable", variable=var, value="0", command=disableEntry)
disableEntryRadioButton.pack(anchor=W)
enableEntryRadioButton = Radiobutton(frame, text="Enable", variable=var, value="1", command=enableEntry)
enableEntryRadioButton.pack(anchor=W)

我的想法是在按下每个单选按钮时调用正确的回调。但我不太确定它是否真的发生在我编写的代码中,因为当我选择收音机时,条目的状态没有切换。

我哪里错了?

【问题讨论】:

【参考方案1】:

您的程序有一些问题,但总体结构还可以。

    你没有打电话给root.mainloop()。这对于事件循环服务事件(例如按钮单击等)是必要的。 您使用ENABLEDDISABLED,但不要在任何地方定义或导入它们。我个人更喜欢使用字符串值"normal""disabled"。 您没有打包主要的 frame 小部件

当我修复这三件事时,您的代码可以正常工作。这是工作代码:

from Tkinter import *

root = Tk()
frame = Frame(root)
frame.pack()

#callbacks
def enableEntry():
    entry.configure(state="normal")
    entry.update()

def disableEntry():
    entry.configure(state="disabled")
    entry.update()

#GUI widgets
entry = Entry(frame, width=80)
entry.pack(side='right')

var = StringVar()
disableEntryRadioButton = Radiobutton(frame, text="Disable", variable=var, value="0", command=disableEntry)
disableEntryRadioButton.pack(anchor=W)
enableEntryRadioButton = Radiobutton(frame, text="Enable", variable=var, value="1", command=enableEntry)
enableEntryRadioButton.pack(anchor=W)

root.mainloop()

【讨论】:

Bryan,抱歉:我忘记在我的代码摘录中插入 root.mainloop()(错字)

以上是关于Python里tkinter如何重置单选按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不单击tkinter python的情况下读取单选按钮值

如何在 Python Tkinter 的按钮下方移动单选按钮的文本标签?

Python tkinter Entry 小部件状态通过单选按钮切换

Python - tkinter 小部件的数组随着单选按钮的点击而变化

在 tkinter python 中给单选按钮一个默认值

在 Python 3 中使用 tkinter 更改单选按钮的背景颜色