Kivy中ScrollView子部件不显示问题求助
问题解决:右侧ScrollView始终空白的原因及修复
你的代码核心问题在于调用display_info时使用了新的App实例,而非当前运行的实例:
在SelectableLabel的apply_selection方法中,你写了:
MyApp().display_info(self.data)
这行代码会创建一个全新的MyApp对象,调用它的display_info方法时,修改的是这个新对象的info_layout,而不是界面上实际显示的那个info_layout,所以右侧区域始终空白。
修复步骤
只需要将这行代码替换为获取当前运行的App实例即可:
# 确保顶部已导入App(你的代码已经导入,无需新增) from kivy.app import App # 修改SelectableLabel类的apply_selection方法: def apply_selection(self, rv, index, is_selected): self.selected = is_selected if is_selected: App.get_running_app().display_info(self.data)
验证效果
修改后运行代码,点击左侧的任意单词,右侧ScrollView区域会正确显示对应的单词信息,print(data)的输出也会和界面展示完全对应。
额外说明
- 你的
info_layout初始化和添加到ScrollView的逻辑是正确的,问题仅在于App实例的错误引用 - 后续扩展功能时,建议通过
App.get_running_app()获取全局实例,避免重复创建新实例导致的状态不一致
内容的提问来源于stack exchange,提问作者路阿兰
相关产品推荐
相关产品推荐

