如何一次选择一个tkinter按钮

2024-05-28 20:12:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望我的tkinter按钮在被选中时在可以打印条目中的内容之前被提升,但是两个按钮都可以被选中同时被提升时间。全部我希望我的widget所执行的行为只是能够同时选择两个按钮,而我希望一次只启动一个按钮。在

import tkinter as tk


def output():

    global choosed

    if choosed:
        now = new.get()
        print(now)
    else:
        print("select predict button to proceed")


def raised_button(button_object):

    global choosed
    choosed = True

    button_object.configure(relief=tk.SUNKEN, state=tk.DISABLED)


def stop():

    global choosed
    choosed = False

    lot1.configure(relief=tk.RAISED, state=tk.ACTIVE)
    lot2.configure(relief=tk.RAISED, state=tk.ACTIVE)



root = tk.Tk()
root.geometry("400x400")


new = tk.StringVar()
en = tk.Entry(root, textvariable=new).pack()

choosed = False


lot1 = tk.Button(root, text="GOOD")
lot1.configure(command=lambda button_object=lot1: 
raised_button(button_object))
lot1.pack(side="left")


lot2 = tk.Button(root, text="BAD")
lot2.configure(command=lambda button_object=lot2: 
raised_button(button_object))
lot2.pack()


tk.Button(root, text="print number", command=lambda :[output(),
stop()]).place(x=150, y=300)

root.mainloop()

如果按钮GOOD被选中,只有当选择按钮BAD凹陷效果被应用到它时,按钮Good凹陷效果被禁用。在


Tags: newobjectconfiguredefbuttonroot按钮global
1条回答
网友
1楼 · 发布于 2024-05-28 20:12:48

据我所知,只有一个按钮可以凹陷。如果你点击第二个按钮,那么第一个按钮(它是凹陷的)必须再次升起。在

您可以在raise_button()内使用stop()。在

def raised_button(button_object):
    global choosed
    choosed = True

    stop()

    button_object.configure(relief=tk.SUNKEN, state=tk.DISABLED)

或者您可以使用choosed记住suken按钮,并在单击其他按钮时将其升高。在

^{pr2}$

编辑:您也可以将Radiobuttonsindicatoron=0一起使用,它们看起来像普通按钮,但仍然只能选择一个Radiobutton。在

import tkinter as tk

root = tk.Tk()

v = tk.IntVar()

tk.Radiobutton(root, text="One", variable=v, value=1, indicatoron=0).pack()
tk.Radiobutton(root, text="Two", variable=v, value=2, indicatoron=0).pack()

tk.Button(root, text='Reset', command=lambda:v.set(0)).pack()

root.mainloop() 

查看更多effbot.org网站:Radiobutton

相关问题 更多 >

    热门问题