这是我的第一篇文章,如果格式有误,请见谅,如果需要,我很乐意更改。
我正在使用 Tkinter 创建一个用于科学数据分析的界面。对于分子列表,可以在单独的图中表示四个。另一方面,我使用 Treeview 显示有关所有分子的一些数字。(不仅仅是显示的)当树视图行与显示的图有关时,我希望该行的文本颜色相同。
对于每个显示的图形,我在代表它的行上放置一个不同的标记,然后使用标记方法将前景色更改为绘图的颜色。
代码过去工作正常,但现在它停止工作而没有对我的代码进行任何更改。使用标签设置前景色不会改变颜色。几行之后,我也使用该方法将一行更改为粗体,并且效果很好。
我设法确认代码行被正确读取:如果我将颜色设置为无法识别的值,则按预期执行时会出现 tkinter 错误。此外,使用一些打印,if/elif 在正确的时刻按预期执行(逻辑测试中没有错误)。
该代码在另一台计算机上运行良好,这让我相信某些 python 包存在问题。两台计算机具有相同的 ttk 版本 (0.3.1),我在注意到问题后更新了所有模块以确保它不是过时的包。
唯一对电脑做的改动就是把anaconda和环境卸载重装了,现在用的环境中增加了pyinstaller的安装(用pip)(我在原环境安装pyinstaller的时候已经修改了其他错误地安装了重要的包,不得不从头开始重新安装 anaconda 才能让它再次工作)
我尝试在没有 pyinstaller 模块的情况下创建另一个相同的环境,但得到了相同的结果。
我已经不知道卸载并重新安装 anaconda 来解决问题的次数了。如果可能的话,我真的不想重新安装它。
我已经隔离了制作树视图对象的界面代码。经过测试,下面的代码片段给了我同样的问题。
import tkinter as tk
from tkinter import ttk
import numpy as np
class Testy():
def __init__(self, root):
#Values set in other part of the interface
self.Classes = ['Molecule1','Molecule2','Molecule3','Molecule4',
'Molecule5','Molecule6']
self.Single_Kinetic_Menu_Var = [tk.StringVar(value = 'Molecule1'),
tk.StringVar(value = 'Molecule3'),
tk.StringVar(value = 'Molecule4'),
tk.StringVar(value = 'Molecule5')]
self.Experiment_Count = np.zeros([len(self.Classes),2])
#Treeview widget making
Tree = ttk.Treeview(root) …
Run Code Online (Sandbox Code Playgroud)