【问题标题】:tkinter Radiobutton doesn't show selection if text foreground value is other than black如果文本前景值不是黑色,tkinter 单选按钮不显示选择
【发布时间】:2021-06-20 23:50:58
【问题描述】:

如果单选按钮文本 fg 设置为黑色以外的任何颜色,它不会显示选择但按钮有效。用户不知道单选按钮是否被选中。

在下面的代码中,单击时仅显示放射性选择,因为文本 fg ='black' 而对于其他 2 个按钮,单击后您将看不到选择。

有什么想法吗?

import tkinter as tk

window = tk.Tk()    
window.configure(background ='green')

def selVal():
    print("Selected Radio Button",(selection.get()))
    
   
# radioselect variable  
selection = tk.StringVar()
selection.set("lifetime")

# radioselect buttons 
lifetimeBtn = tk.Radiobutton(window, variable = selection, value = "lifetime", text = "Lifetime",fg='white',bg='green',command =selVal)
elecNoiseBtn = tk.Radiobutton(window, variable = selection, value = "electronic", text = "Electronic Noise",fg='white',bg='green',command =selVal)
radioactivityBtn = tk.Radiobutton(window, variable = selection, value = "radioactive", text = "Radioactivity",fg='black',bg='green',command =selVal)
lifetimeBtn.grid(row = 1, column = 0)
elecNoiseBtn.grid(row = 1, column = 1)
radioactivityBtn.grid(row = 1, column = 2)

window.mainloop()


【问题讨论】:

  • 你使用的是什么操作系统?
  • @TheLizzard Windows10
  • 在 Linux 上也显示相同;所以这不仅仅是 Windows 的事情......
  • 认为你必须使用 altclam ttk.Style(),然后设置fieldbackground -- stackoverflow.com/questions/61034896/set-style-for-ttk-combobox
  • 这是因为 dot 共享文本的相同 foreground 颜色选项,所以 white 在 白色当它被选中时。

标签: tkinter


【解决方案1】:

问题在于白色。白色以外的任何颜色都可以正常工作并显示单选按钮的选择。现在使用白色,按钮的工作方式与其他颜色相同,但白色与背景白色混合,因此我们看不出它有任何区别。所以你可以使用白色以外的任何颜色。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2015-08-16
    • 2016-05-14
    • 2011-10-12
    相关资源
    最近更新 更多