python - Python tkmacosx 错误:“systemWindowBackgroundColor”
问题描述
我正在尝试更改按钮的前景色。我正在使用 mac big sur 并安装了 tkmacosx,但我相信 tkmacosx 存在问题。
运行以下代码,或尝试使用一般的 button2 会引发错误:
import tkinter as tk
from tkmacosx import Button
window = tk.Tk()
button = tk.Button(window, text='Text', highlightbackground='gray15', fg='pink')
button.pack()
button2 = Button(window, text='Text')#, highlightbackground='gray15', fg='pink')
button2.pac()
window.mainloop()
Traceback (most recent call last):
File "/Users/user/Desktop/BPF_Program/Save Logs/May 9, 2021/Tkinter stackoverflow thing.py", line 11, in <module>
button2 = Button(window, text='Text')#, highlightbackground='gray15', fg='pink')
File "/usr/local/lib/python3.9/site-packages/tkmacosx/widgets/button.py", line 55, in __init__
ButtonBase.__init__(self, 'normal', master, cnf, **kw)
File "/usr/local/lib/python3.9/site-packages/tkmacosx/basewidgets/button_base.py", line 1045, in __init__
_Canvas.__init__(self, master=master, **kw)
File "/usr/local/lib/python3.9/site-packages/tkmacosx/utils/__init__.py", line 158, in __init__
tkinter.Widget.__init__(self, master, 'canvas', cnf, kw)
File "/usr/local/Cellar/python@3.9/3.9.0_2/Frameworks/Python.framework/Versions/3.9/lib/python3.9/tkinter/__init__.py", line 2569, in __init__
self.tk.call(
_tkinter.TclError: unknown color name "systemWindowBackgroundColor"
解决方案
我必须对值 systemWindowBackgroundColor 和 systemTextColor 进行硬编码,以免它们引发错误。更改是每个 SYSTEM_DEFAULT_BG 和 SYSTEM_DEFAULT_FG 的第二个变量。这是在我的tkmacosx/utils/__init__.py
文件中。
SYSTEM_DEFAULT_BG = "white"
SYSTEM_DEFAULT_FG = "black"
if sys.platform == 'darwin':
SYSTEM_DEFAULT_BG = "systemWindowBackgroundColor"
SYSTEM_DEFAULT_BG = "#FFFFFF"
SYSTEM_DEFAULT_FG = "systemTextColor"
SYSTEM_DEFAULT_FG = "#000000"
这可能不是正确的解决方法,但它似乎可以完成这项工作。
推荐阅读
- c - 这个值是多少?
- math - 可以在任何编程语言中轻松解析和计算的最标准数学符号是什么?
- python - 在 django bulk_create 中获取 IntegrityError 的键
- javascript - 基于 Angular/ChartJS 中的 API 动态更新图形(移动线图)
- javascript - 使用 webpack 在 Django 服务器上运行 React App 的问题
- python - 防止通过 Ctrl+D 关闭 python IDLE shell
- sql - 当表 B 上没有运行查询时如何将数据从表 A 切换到表 B
- python - 如何根据唯一列组合 Pandas 数据框
- javascript - JavaScript - 如何在显示为正方形/矩阵的元素的线性数组中按键查找元素的 x,y 位置?
- python - 将数据帧的部分行从数字转换为日期时间,但得到奇怪的数字