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

Python/BeeWare中Toga表格双击如何获取并打印行数据

Toga表格双击获取行数据解决方案

当双击Toga表格行时,事件返回的Row对象是数据源的包装实例,直接打印只会输出对象内存信息。要获取实际行数据,可通过以下两种方式实现:

方法说明

  • 方式1:将Row转为列表:直接把Row对象转换为列表,即可得到整行的原始数据
  • 方式2:通过表头键名/索引访问:Row对象支持像字典或列表一样,用表头名称(字符串)或索引(数字)获取单个字段值

修改后的代码

import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW

class HelloWorld(toga.App):

    def startup(self):
        # 初始化表格数据
        data = [
            ['John', 'Doe', 30],
            ['Jane', 'Smith', 25],
            ['Alice', 'Johnson', 35]
        ]
        table = toga.Table(headings=['First Name', 'Last Name', 'Age'], data=data, on_double_click=self.clicked)

        # 构建主界面
        main_box = toga.Box(children=[table], style=Pack(direction=COLUMN))

        self.main_window = toga.MainWindow(title=self.formal_name)
        self.main_window.content = main_box
        self.main_window.show()

    def clicked(self, table, row):
        # 获取整行数据并打印
        full_row_data = list(row)
        print("Clicked full row data:", full_row_data)
        
        # 按表头名称获取单个字段并打印
        first_name = row['First Name']
        last_name = row['Last Name']
        age = row['Age']
        print(f"User details: {first_name} {last_name}, {age} years old")

def main():
    app = HelloWorld()
    app.main_loop()

效果说明

双击表格行后,终端会输出类似以下内容:

Clicked full row data: ['John', 'Doe', 30]
User details: John Doe, 30 years old

内容的提问来源于stack exchange,提问作者Thiago Marcos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:35:11