Python 在Kivy中添加动态小部件的大小不正确
我刚刚开始学习Kivy,我对事物的间隔有一些问题。我正在尝试从磁盘加载图像,然后以网格方式渲染它们 然而,图像都被挤压到左下角Python 在Kivy中添加动态小部件的大小不正确,python,python-3.x,kivy,python-3.5,kivy-language,Python,Python 3.x,Kivy,Python 3.5,Kivy Language,我刚刚开始学习Kivy,我对事物的间隔有一些问题。我正在尝试从磁盘加载图像,然后以网格方式渲染它们 然而,图像都被挤压到左下角 #:kivy 1.11.0 <Gallery>: ScrollView: GridLayout: id: wall cols: 4 size_hint_y: None height: self.minimum_height <R
#:kivy 1.11.0
<Gallery>:
ScrollView:
GridLayout:
id: wall
cols: 4
size_hint_y: None
height: self.minimum_height
<Root>:
gallery: gallery_id
BoxLayout:
orientation: 'vertical'
size: root.size
ActionBar:
ActionView:
ActionPrevious:
ActionButton:
text: "Button"
on_release: root.clickme()
Gallery:
id: gallery_id
这是它的外观(您可以看到图像被压扁,左下角):
如何正确地分隔这些图像?大概是这样的:
另外,当用户调整窗口大小时,是否有办法动态确定GridLayout
中的cols
属性?例如,如果用户增加窗口的宽度,则应用程序应支持更大的col
大小。同样,如果用户缩小窗口,应用程序应该减小列的大小。:
<Gallery>:
ScrollView:
GridLayout:
id: wall
cols: 4
size_hint_y: None
height: self.minimum_height
滚动视图:
网格布局:
id:墙
科尔斯:4
尺寸提示:无
高度:自身最小高度
Gallery是Widget的一个子类,因此它不需要特别调整其子类的大小或位置,因此ScrollView的默认大小为(100100),位置为(0,0),因此GridLayout放置在同一区域内,因此所有图像都放在该小区域内
解决方案是使Gallery成为适当的布局类型,例如BoxLayout
另外,当用户调整窗口大小时,是否有一种方法可以动态确定GridLayout中的cols属性
在kv中:cols:Window.size的一些函数
我想我明白了。。。我尝试过并更改了类定义:类库(BoxLayout)
,但现在我看不到任何图像,只看到4个标签。应该有150个图像+标签?它们只是在ScrollView的可见部分之外吗?如果你尝试滚动会发生什么?我根本无法滚动。你可以在这里看到,我只看到4个标签和空图像:啊,我想出来了。。。size\u hint\u y:None
将宽度减少到0,我认为。移除它,我就会看到图像。虽然它们都被挤压在一起,也没有卷轴出现,但它们都像孤独一样垂直堆叠在一起。是否因为我的动态BoxLayout
(“bl
”)在添加到网格时没有大小?我尝试过使用大小属性,但图像仍然堆叠在一起。还是不太明白kivy是怎么安排的:(
<Gallery>:
ScrollView:
GridLayout:
id: wall
cols: 4
size_hint_y: None
height: self.minimum_height