无法.bind("<<TreeviewSelect>>"..与TableView一起获取选定的行数据

问题描述 投票:0回答:1

我试图在 ttkbootstrap Tableview 中获取所选行的行数据,与 tkinter treeview 一样,我总是只使用 .bind("<>",my_func) ,而 my_func 将继续完成这项工作。

这是我使用的代码,当从表视图中选择一行时,没有迹象表明 on_tv_select 运行。在这种情况下,我不清楚如何获取所选行的数据。

import tkinter as tk
import ttkbootstrap as ttk
from ttkbootstrap.tableview import Tableview

def on_tv_select(event):
    print(f".. I was selected")

if __name__ == '__main__':
    colData = [{'text': 'carID', 'stretch': True},
               {'text': 'Make', 'stretch': True},
               {'text': 'Model', 'stretch': True}]
    rowData = [(1,'Make ZZ', 'Model BA'),
               (2,'Make DD', 'Model Ed'),
               (3,'Z Dude','That other')]
    mainWindow = tk.Tk()
    mainWindow.title("POC-Main Window")

    myTableView = Tableview(master=mainWindow,coldata=colData,rowdata=rowData,paginated=True,searchable=True,bootstyle='primary')
    myTableView.pack(fill='both', expand=True, padx=10, pady=10)
    myTableView.bind("<<TreeviewSelect>>",on_tv_select)
    mainWindow.mainloop()

我确实看到了这篇文章如何使用Python和ttkbootstrap的tableview获取所选行的内容?显示了

bind_all
虽然绑定到所有小部件会给我的应用程序带来更多问题。

tkinter tableview ttkbootstrap
1个回答
0
投票

根据

Tableview
的源代码,它实际上是一个
ttk.Frame
,里面有一个
ttk.Treeview
,这个内部的
Treeview
小部件可以通过属性
view
来引用。

因此将事件绑定到此内部树视图:

myTableView.view.bind("<<TreeviewSelect>>", on_tv_select)
© www.soinside.com 2019 - 2024. All rights reserved.