相关疑难解决方法(0)

Tkinter Treeview 如何用鼠标正确选择多个项目

我正在尝试使用鼠标来选择和取消选择多个项目。我有它的工作,但是当用户快速移动鼠标时会出现问题。当鼠标快速移动时,一些项目会被跳过并且根本没有被选中。我一定是走错了路。

更新 1: 我决定使用自己的选择系统,但得到的结果与上述相同。当鼠标快速移动时,某些项目会被跳过,因此它们没有添加正确的颜色标签并保持不变。如果鼠标缓慢移动,所有项目都会被正确选择。下面是新代码和问题的另一个图像。

更新 2:我已经解决了这个问题并发布了工作代码只是为了完整性和将来帮助其他人。我最终使用了我自己的选择系统而不是内置的选择系统。

示例图像

import tkinter as tk
import tkinter.ttk as ttk


class App(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title('Treeview Demo')
        self.geometry('300x650')
        self.rowconfigure(0, weight=1)
        self.columnconfigure(0, weight=1)

        tv = self.tv = ttk.Treeview(self)
        tv.heading('#0', text='Name')
        # Populate tree with test data.
        for idx in range(0, 4):
            tv.insert('', idx, f'!{idx}', text=f'Item {idx+1}', tags='TkTextFont', open=1)
            iid = f'!{idx}_!{idx}'
            tv.insert(f'!{idx}', '0', iid, text=f'Python {idx+1}', tags='TkTextFont', open=1)
            for i in range(0, 5):
                tv.insert(iid, f'{i}', f'{iid}_!{i}', text=f'Sub item {i+1}', tags='TkTextFont')

        tv.grid(sticky='NSEW')
        self.active_item = None

        def motion(_): …
Run Code Online (Sandbox Code Playgroud)

python tkinter

13
推荐指数
1
解决办法
1012
查看次数

ttk treeview:备用行颜色

如何为treeview小部件设置样式,以便备用行具有不同的背景颜色,例如,行1,3,5具有白色背景,行2,4,6具有浅蓝灰色背景?

我也想设置gridlines.

python treeview tkinter ttk

12
推荐指数
1
解决办法
1万
查看次数

python:tkinter树视图颜色没有更新

这是我的第一篇文章,如果格式有误,请见谅,如果需要,我很乐意更改。

我正在使用 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)

treeview tkinter colors python-3.x

4
推荐指数
2
解决办法
1861
查看次数

标签 统计

tkinter ×3

python ×2

treeview ×2

colors ×1

python-3.x ×1

ttk ×1