繁体   English   中英

如何使 Python 中的这个 Tkinter 单选按钮只添加一次选择的字母,而不是添加两次第一个字母?

[英]How do I make this Tkinter Radiobutton in Python only add the letter that's been selected once, instead of adding the first letter two times?

我正在尝试使用 Tkinter 制作一个带有 GUI 的 Python 应用程序,这将允许用户 select 一个字母从两个字母的selectedletter中选择的一个字母,然后在选择的字母之前打印到选项卡用户关闭之前选择的字母。

from tkinter import *

def addletter():
    a = "a"
    b = "b"
    if(x.get()==0):
        selectedletter.append(a)
    if(x.get()==1):
        selectedletter.append(b)


window = Tk()

letters = ["a", "b"]
selectedletter = []

x= IntVar()
for index in range(len(letters)):
        radiobutton = Radiobutton(window,
                                  text=letters[index],
                                  value=index,
                                  variable=x,
                                  command=addletter()
                                  )
        radiobutton.pack()

window.mainloop()

print(selectedletter)

但是由于某种原因,它不仅将选择的字母添加到数组中,而且仅将第一个字母(在本例中a )添加了两次。 例如,当关闭程序之前选择的字母是b时,我希望 output 是['b'] ,但我得到的是['a', 'a'] 如何获得所需的 output?

command=addletter中去掉括号,之后它应该可以工作了。

是一个解释。

from tkinter import *

def addletter():
    a = "a"
    b = "b"
    if(x.get()==0):
        selectedletter.append(a)
    if(x.get()==1):
        selectedletter.append(b)
    print(selectedletter)


window = Tk()

letters = ["a", "b"]
selectedletter = []

x= IntVar()
for index in range(len(letters)):
        radiobutton = Radiobutton(window,
                                  text=letters[index],
                                  value=index,
                                  variable=x,
                                  command=addletter
                                  )
        radiobutton.pack()

window.mainloop()

print(selectedletter)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM