使用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
相关产品推荐
相关产品推荐

