Tkinter Python单选按钮未选择

Tkinter Python单选按钮未选择,python,python-3.x,tkinter,radio-button,toplevel,Python,Python 3.x,Tkinter,Radio Button,Toplevel,您好,我是一名相对较新的开发人员(大约1年的java经验,几周前才开始使用python),在python的顶级窗口中使用单选按钮时遇到了问题。我在这里搜索了不同的问题和答案,并尝试了其中的几个,但似乎没有一个有效。以下是相关的代码: class MPTest(TestBed.Frame): def __init__(self, master=NONE): TestBed.Frame.__init__(self, master) self.createWidget

您好,我是一名相对较新的开发人员(大约1年的java经验,几周前才开始使用python),在python的顶级窗口中使用单选按钮时遇到了问题。我在这里搜索了不同的问题和答案,并尝试了其中的几个,但似乎没有一个有效。以下是相关的代码:

class MPTest(TestBed.Frame):
   def __init__(self, master=NONE):
       TestBed.Frame.__init__(self, master)
       self.createWidgets()

   def createWidgets(self):
      ucThree = Button(root, text='Bids', font='Jokerman', 
                       fg='white', bg='royal blue',
                       command=self.BidWindow)
      ucThree.grid(row=2)

   def BidWindow(self):
       t = TestBed.Toplevel(self)
       t.wm_title("Bid Info")
       t.configure(background="navy")
       v = IntVar()
       v2 = IntVar()
       bidtypelabel = Label(t, text='Bid Type: ', fg='white', bg='navy')
       bidtypelabel.grid(row=0)
       realtime = Radiobutton(t, text='Real Time', variable=v, value=1, 
                             fg='white', bg='navy')
       realtime.grid(row=1)
       priority = Radiobutton(t, text='Priority', variable=v, value=2, 
                             fg='white', bg='navy')
       priority.grid(row=2)
       listsearch = Radiobutton(t, text='List Search', variable=v, value=3, 
                                fg='white', bg='navy')
       listsearch.grid(row=3)
       bidactionlabel = Label(t, text='Action: ', fg='white', bg='navy')
       bidactionlabel.grid(row=0, column=1)
       acceptbid = Radiobutton(t, text='Accept Bid', variable=v2, value=1, 
                               fg='white', bg='navy')
       acceptbid.grid(row=1, column=1)
       rejectbid = Radiobutton(t, text='Reject Bid', variable=v2, value=2, 
                               fg='white', bg='navy')
       rejectbid.grid(row=2, column=1)
       submit = Button(t, text='Submit', fg='white', bg='royal blue')
       submit.grid(row=4, column=2)


root = TestBed.Tk()
root.configure(background="navy")
root.rowconfigure((0, 1, 2, 3, 4, 5, 6, 7, 8, 9), weight=1, pad=50)
root.columnconfigure(1, weight=1, pad=200)
app = MPTest(master=root)

app.mainloop()

我已经尝试将变量设置为0和1,都在
IntVar()
中,然后在下一行用一个集合进行设置。但是,这两个选项都不允许单选按钮可选择,并且将其设置为1(已指定的值)不会导致在打开窗口时选择第一个选项。我还尝试将变量的主变量设置为t(
TopLevel
)和
TestBed
。我尝试的东西似乎都不管用。有时,将鼠标悬停在它们上面会选择所有这些,这似乎很容易出错。然而,当我点击它们时,无论我根据在这里和其他网站上找到的答案尝试什么,它们都不会保持选中状态。我是Python新手,因此如果我做了一些明显愚蠢或错误的事情,我很抱歉,但我们将感谢您的帮助。

问题是
fg='white'
参数与单选按钮的背景颜色冲突(我看到的是白色,我认为您的情况也一样)。选择正在发生,它只是在白色背景上画一个白点,所以你看不到它

要进行补救,请在每个单选按钮中添加以下参数:

selectcolor='navy'
# or any colour of your preference that highlights the white dot
现在,您的单选按钮将具有相同的背景颜色,白色将脱颖而出


您如何“设置”它们
v.set(1)
不起作用?是的,我尝试了v.set(1),但它没有将其设置为值为1的选项。我还尝试使用v.set(0)设置它,但这也不允许我单击任何按钮。我还尝试在IntVar()初始值设定项中设置它,这也不起作用。请提供一个与具有不相关部分的某些相关代码相反的值。@Nae我认为OP只缺少两个导入行,即
import tkinter as TestBed
from tkinter import*
,后者通常不建议使用(我觉得很奇怪,
tkinter
在他们的演示中实际使用了这个)@wolfschoolwitcher:前景色和背景色不会导致错误,因为没有错误。问题只是你修改了视觉效果,所以你无法分辨按钮是否被选中。它们被选中时,你只是因为你的颜色选择而看不到而已。