【发布时间】:2023-03-17 15:59:01
【问题描述】:
按下按钮后,我找不到将 MDDataTable 放入第二个屏幕的方法。当我从第一个屏幕按下按钮时,我希望能够在第二个屏幕中显示我的表格。我不知道要写什么才能让 view_account 函数在我的帐户屏幕中运行。桌子似乎无法进入第二个屏幕。 我得到的错误是这样的
self.table.open()
AttributeError: 'DemoApp' object has no attribute 'table'
Window.size = (300, 500)
screen_helper = """
ScreenManager:
MenuScreen:
AccountScreen:
<MenuScreen>:
name: 'menu'
MDLabel:
text: "Login Page Test"
pos_hint: {'center_x':0.8, 'center_y':0.9}
MDRectangleFlatButton:
text: 'Proceed To Next Page'
pos_hint: {'center_x':0.5, 'center_y':0.4}
font_size : 20
on_press:
root.manager.current = 'account'
app.view_account()
<AccountScreen>:
name: 'account'
MDLabel:
text: 'Accounts Page Test'
halign: 'center'
"""
class MenuScreen(Screen):
pass
class AccountScreen(Screen):
pass
sm = ScreenManager()
sm.add_widget(MenuScreen(name='menu'))
sm.add_widget(AccountScreen(name='account'))
class DemoApp(MDApp):
def build(self):
screen = Builder.load_string(screen_helper)
return screen
def view_account(self):
rows = []
table = MDDataTable(pos_hint={'center_x': .5, 'center_y': .6},
size_hint=(.9, 0.7),
check=True,
rows_num=30,
column_data=[
("Type.", dp(38)),
("Balance", dp(20)),
("Date", dp(20)),
("id", dp(20))
],
row_data=rows
)
table.bind(on_check_press=self.check_press)
table.bind(on_row_press=self.row_press)
close_button1 = MDFlatButton(text='Close', on_release=self.close_view)
self.table.open()
def row_press(self, instance_table, instance_row):
print(instance_table, instance_row)
DemoApp().run()
【问题讨论】: