2024-04-19 02:02:14 发布
网友
构建时,小部件的初始大小为(100100)。如果您从此更改大小:
<Bird>: size: 70, 80
对此:
<Bird>: size: 100, 80
矩形将正确对齐。在kv文件中创建的初始矩形位于父窗口的中心,在Python代码中创建的其他矩形向左偏移。你知道吗
如果将Python代码中的Bird构造函数改为:
def __init__(self, **kwargs): super(Bird, self).__init__(**kwargs) self.pick_color()
为此(有效地将默认小部件大小从(100100)覆盖为(50,50)):
def __init__(self, **kwargs): self.size = (50, 50) super(Bird, self).__init__(**kwargs) self.pick_color()
您将注意到在Python代码中创建的矩形将向右移动。将文件更改为:
收件人:
<Bird>: size: 50, 80
它匹配(新的)初始窗口小部件的宽度大小(50,50),所有矩形将再次对齐。你知道吗
您的问题的解决方案是保持一切原样,只是将Python中的newbirds的size设置为与kv文件中的相同:
size
def __init__(self, **kwargs): self.size = (70, 80) super(Bird, self).__init__(**kwargs) self.pick_color()
一切都会如愿。你知道吗
这意味着kv文件的size属性不会应用于Python端创建的Birds,而只应用于由kv声明创建的Birds。是这个Kivy bug还是Python代码中又少了一个步骤,让Builder从kv文件应用size到Python创建的Birds,我现在不知道。你知道吗
根据我的经验,在Kivy开发的这一点上,混合太多的kv和Python代码将导致您在这里遇到的这些奇怪的问题。最好要么用kv处理所有与视图相关的内容,要么完全抛弃kv,用Python构建所有内容。你知道吗
有些东西在kv中根本不起作用,即设置cols属性GridLayout(v1.9.1)。你知道吗
cols
GridLayout
就我个人而言,目前我坚持使用组织良好的Python代码来构建UI,几乎不使用kv文件。你知道吗
希望这有点帮助。。。你知道吗
构建时,小部件的初始大小为(100100)。如果您从此更改大小:
对此:
矩形将正确对齐。在kv文件中创建的初始矩形位于父窗口的中心,在Python代码中创建的其他矩形向左偏移。你知道吗
如果将Python代码中的Bird构造函数改为:
为此(有效地将默认小部件大小从(100100)覆盖为(50,50)):
您将注意到在Python代码中创建的矩形将向右移动。将文件更改为:
收件人:
它匹配(新的)初始窗口小部件的宽度大小(50,50),所有矩形将再次对齐。你知道吗
您的问题的解决方案是保持一切原样,只是将Python中的newbirds的
size
设置为与kv文件中的相同:一切都会如愿。你知道吗
这意味着kv文件的
size
属性不会应用于Python端创建的Birds,而只应用于由kv声明创建的Birds。是这个Kivy bug还是Python代码中又少了一个步骤,让Builder从kv文件应用size
到Python创建的Birds,我现在不知道。你知道吗根据我的经验,在Kivy开发的这一点上,混合太多的kv和Python代码将导致您在这里遇到的这些奇怪的问题。最好要么用kv处理所有与视图相关的内容,要么完全抛弃kv,用Python构建所有内容。你知道吗
有些东西在kv中根本不起作用,即设置
cols
属性GridLayout
(v1.9.1)。你知道吗就我个人而言,目前我坚持使用组织良好的Python代码来构建UI,几乎不使用kv文件。你知道吗
希望这有点帮助。。。你知道吗
相关问题 更多 >
编程相关推荐