Tkinter : 선택시 라디오 버튼 전경색

Aug 19 2020

내가 갖고 싶은 Radiobutton움푹 들어간 버튼 모양으로 표시했습니다.

  • 선택하지 않으면 흰색 배경에 검은 색 텍스트,
  • 선택하면 진한 회색 배경에 흰색 텍스트가 표시됩니다.

현재는 회색 배경 만 있지만 선택하면 흰색 텍스트가 없어 대비가 좋지 않습니다.

for (lbl, val) in [("A", "a"), ("B", "b"))]:
    rb = tk.Radiobutton(tab,
                        text=lbl,
                        variable=v,
                        value=val,
                        command=select,
                        selectcolor=gray,
                        indicatoron=0,
                        width=25, pady=7.5)
    rb.pack(...)

tk.Radiobuttonselectcolor선택할 때 배경색 인 구성 옵션이 있지만 선택하면 전경색에 대해 그러한 옵션을 제공하지 않는 것 같습니다.

나는 하나가 지정하여이를 달성 할 수 있다고 생각 command합니다 선택 트리거 그 라디오 버튼에 선택되어 있지만, 오히려 내가 찾은 그들이 설정 한 변수의 단지 값보다 외부에서 자신을 라디오 버튼의 속성에 액세스 필요 지금까지 할 방법이 없습니다.rb.configforeground

라인을 따라 옵션을 어떻게 얻을 수 selectforeground있습니까?

답변

1 Atlas435 Aug 19 2020 at 16:08

이를 위해 익명 기능 을 사용하십시오 .

import tkinter as tk

def select(rb):
    rb.config(foreground='white')
    for rb_ in rbs:
        if rb_ != rb:
           rb_.config(fg='black')

root = tk.Tk()

rbs=[]

def do_buttons():
    for _ in range(11):
        v=tk.IntVar()
        val = 1

        rb = tk.Radiobutton(root,
                            text="A",
                            variable=v,
                            value=val,
                            selectcolor='gray',
                            indicatoron=0,
                            width=25, pady=7.5)
        rb.config(command=lambda arg=rb:select(arg))

        rb.pack()
        rbs.append(rb)

b = tk.Button(root, text='click', command=do_buttons)
b.pack()

root.mainloop()