为什么我的按钮颜色取决于我的活动窗口状态(tkinter GUI,macOS)?

问题描述 投票:0回答:0

我正在尝试在 Python 中使用 tkinter 制作一个基本的棋盘 GUI。我正在通过 VSC 运行它。我的应用程序没有太多代码,但似乎正在发生的事情是我将按钮的背景颜色设置为由我的代码确定的特定颜色并且代码工作正常......当我的应用程序窗口是不活跃。当我的应用程序窗口不活动时,按钮的颜色恢复为默认的灰色。

这是我的代码:

from tkinter import *

# SIMPLE GUI ------------------------------------------------------------

root = Tk()
frame = Frame(root, borderwidth=0,highlightthickness=0, relief="solid",padx=10,pady=10)
frame.grid()

# Button
btns = [[0] * 8 for i in range(8)]

# scales up and down buttons
scale = 0.7
for i in range(8):
    for j in range(8):
        if ((i%2 == 0)&(j%2 == 0))|((i%2 == 1)&(j%2 == 1)):
            bgn = "white"
        else:
            bgn = "brown"
        btn = Button(frame, text="Wut", width=int(scale*10), height=int(scale*8), bd=0, highlightthickness=0,borderwidth=0, highlightbackground=bgn, activebackground="blue", bg=bgn)
        btns[i][j] = btn
        btn.grid(row=i, column=j, sticky="nsew", padx=0, pady=0)

root.mainloop()

我尝试设置按钮的活动背景颜色,在最后设置按钮的颜色以确保没有可能干扰代码的窗口事件,但无济于事。我曾尝试在 replit.com 上复制这个问题,那里似乎没有问题,但我不确定他们如何处理那里的活动和非活动窗口。基于 Replit 的行为,我猜想可能只在 macOS 中存在潜在问题,但我没有可靠的理由支持它。

python user-interface tkinter button colors
© www.soinside.com 2019 - 2024. All rights reserved.