使用MDDataTable单击Kivy行数据

2024-04-28 06:49:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个MDDataTable,它有一个绑定(在_row _press上),我试图返回该行的一个特定列,而不管它在哪里单击。我在文档中找不到任何东西。这可能吗

简单的例子:

from kivymd.app import MDApp
from kivymd.uix.datatables import MDDataTable
from kivy.metrics import dp

class TestApp(MDApp):
    def build(self):
        mddatatable = MDDataTable(
            pos_hint={'center_x': 0.5, 'center_y': 0.5},
            size_hint=(1, 1),
            check=False,
            use_pagination=True,
            rows_num=10,
            column_data=[
                ("ID", dp(5)),
                ("Description", dp(30)),
                ("Value", dp(10))
            ],
            row_data=[
                ("1", "Description One Here", "$100"),
                ("2", "Description Two Here", "$200"),
                ("3", "Description Three Here", "$300")
            ]
        )
        mddatatable.bind(on_row_press=self.print_id)
        return mddatatable

    def print_id(self, instance_table, instance_row):
        print(instance_row.text)

TestApp().run()

现在,如果您点击“此处描述一”,它将输出“此处描述一”。同样,如果单击“$100”,它将输出“$100”。我希望输出ID列,所以即使您单击第1行中的其他位置,它仍然会输出“1”


Tags: instancefromimportselfheredescriptionrowdp