Python 添加kivy自定义小部件只会添加第一个布局
我正在尝试为列表中的每个项目添加一个自定义小部件。 第一个布局很好,但在第一个布局之后,只显示第一个布局。(黄色广场) 我已经尝试将_widget(Builder.load_)字符串添加到整个自定义小部件中,得到了相同的结果 引用自定义小部件的布局类:Python 添加kivy自定义小部件只会添加第一个布局,python,kivy,Python,Kivy,我正在尝试为列表中的每个项目添加一个自定义小部件。 第一个布局很好,但在第一个布局之后,只显示第一个布局。(黄色广场) 我已经尝试将_widget(Builder.load_)字符串添加到整个自定义小部件中,得到了相同的结果 引用自定义小部件的布局类: 类别股票组合(浮动布局): 通过 用于添加小部件的函数: 投资组合列表=[1,2,3] def添加股票组合(自我、布局): layout.clear_widgets() 对于self.portfolio_列表中的i: layout.add_小
类别股票组合(浮动布局):
通过
用于添加小部件的函数:
投资组合列表=[1,2,3]
def添加股票组合(自我、布局):
layout.clear_widgets()
对于self.portfolio_列表中的i:
layout.add_小部件(StockPortfolio())
以及自定义窗口小部件的开头:
<StockPortfolio@FloatLayout>
id: stockportfolio
size_hint: None, None
height: app.root.height * .18
width: app.root.width -10
canvas:
Color:
rgba: .98, .98, 0, .5
Rectangle:
size: self.size
pos: self.pos
Button:
background_normal: ''
background_down: ''
background_color: [0, 0, 0, 0]
pos: 5, 5
on_release:
app.go_screen(4)
app.load_popup2()
app.update_current(portfolioticker1.text, portfoliocompany.text)
BoxLayout:
orientation: "vertical"
pos: 5, 5
size_hint: None, None
height: app.root.height * .18
width: app.root.width -10
canvas:
Color:
rgba: .98, .98, .98, 1
Rectangle:
size: self.size
pos: self.pos
id:股票组合
大小提示:无,无
高度:app.root.height*.18
宽度:app.root.width-10
画布:
颜色:
rgba:.98,98,0,5
矩形:
大小:self.size
pos:self.pos
按钮:
背景\u正常:“”
背景设置已关闭:“”
背景颜色:[0,0,0,0]
位置:5,5
发布时:
应用程序go_屏幕(4)
app.load_popup2()
当前应用程序更新(portfolioticker1.text,portfoliocompany.text)
盒子布局:
方向:“垂直”
位置:5,5
大小提示:无,无
高度:app.root.height*.18
宽度:app.root.width-10
画布:
颜色:
rgba:.98、.98、.98、1
矩形:
大小:self.size
pos:self.pos
问题
StockPortfolio()
类。kv文件中声明的一个是动态类,而Python脚本中声明的另一个是类规则。动态类不需要Python脚本中的实现StockPortfolio
添加的对象堆叠在一起@FloatLayout
将动态类更改为类规则:
问题
StockPortfolio()
类。kv文件中声明的一个是动态类,而Python脚本中声明的另一个是类规则。动态类不需要Python脚本中的实现StockPortfolio
添加的对象堆叠在一起@FloatLayout
将动态类更改为类规则:
非常感谢您的回答,并解释了这两个类之间的区别。我按照您的解决方案解决了这个问题,并给了我的自定义小部件类的子类一个root.pos引用,以防止它们相互堆叠。现在它们按预期对齐。谢谢!非常感谢您的回答和解释这两个类之间的差异。我按照您的解决方案解决了这个问题,并为我的自定义小部件类的子类提供了一个root.pos引用,以阻止它们相互堆叠。现在它们已按预期对齐。谢谢!
<StockPortfolio>: