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

