You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pandastable的setRowColors方法设置行颜色时遭遇无效颜色名错误的问题求助

使用pandastable的setRowColors方法设置行颜色时遭遇无效颜色名错误的问题求助

大家好,我正在开发一个脚本用来整合多个工具和应用的信息,目前卡在了给表格行设置颜色的最后一步,实在摸不着头脑,来求助大家!

我写的相关代码片段如下:

print(html_color)
print(isValidHexaCode(html_color))
try:
    global_table.setRowColors(rows=int(index), clr = html_color, cols='all')
except Exception as e:
    print(f"An unexpected error occurred: {e}")

(注:print(isValidHexaCode(html_color))只是我用来排查问题的调试代码,这段代码在import_wwb方法里)

当处理合法颜色值时,控制台的输出是这样的:

Name: PNO Color: 4294902015
new color = #ff00ff
#ff00ff
True
An unexpected error occurred: invalid color name "#00585858"

最奇怪的是,明明调试代码显示html_color是有效的十六进制颜色#ff00ff,但报错却指向了一个我没见过的颜色值#00585858。我去掉try/except捕获后,得到了完整的报错栈:

Traceback (most recent call last):
  File "C:\Users\Loren\AppData\Local\Programs\Python\Python311\Lib\tkinter\__init__.py", line 1948, in __call__
    return self.func(*args)
           ^^^^^^^^^^^^^^^^
  File "C:\Users\Loren\Documents\python\simplev4.py", line 245, in import_wwb
    global_table.setRowColors(rows=int(index), clr = html_color, cols='all')
  File "C:\Users\Loren\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandastable\core.py", line 664, in setRowColors
    self.redraw()
  File "C:\Users\Loren\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandastable\core.py", line 537, in redraw
    self.redrawVisible(event, callback)
  File "C:\Users\Loren\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandastable\core.py", line 507, in redrawVisible
    self.colorRows()
  File "C:\Users\Loren\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandastable\core.py", line 634, in colorRows
    self.drawRect(row, col, color=clr, tag='colorrect', delete=0)
  File "C:\Users\Loren\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandastable\core.py", line 3308, in drawRect
    rect = self.create_rectangle(x1+w/2,y1+w/2,x2-w/2,y2-w/2,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Loren\AppData\Local\Programs\Python\Python311\Lib\tkinter\__init__.py", line 2862, in create_rectangle
    return self._create('rectangle', args, kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Loren\AppData\Local\Programs\Python\Python311\Lib\tkinter\__init__.py", line 2832, in _create
    return self.tk.getint(self.tk.call(
                          ^^^^^^^^^^^^^
_tkinter.TclError: invalid color name "#00585858"

我现在完全搞不懂问题出在哪:为什么报错的颜色值和我打印出来的不一样?setRowColors的使用方式我错了吗?有没有大佬能给我点提示或者建议?真的非常感谢!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 09:50:27