Python 当所有小部件都以Kivy显示时,是否会发生一些事件?
我有3个布局,第2个布局的大小取决于另外2个布局的子布局的宽度:Python 当所有小部件都以Kivy显示时,是否会发生一些事件?,python,widget,kivy,python-3.4,Python,Widget,Kivy,Python 3.4,我有3个布局,第2个布局的大小取决于另外2个布局的子布局的宽度: def on_size(self, *args): self.left_panel.width = max(child.texture_size[0] for child in self.left_panel.children) + self.side_padding self.right_panel.width = max(child.texture_size[0] for child in self.right
def on_size(self, *args):
self.left_panel.width = max(child.texture_size[0] for child in self.left_panel.children) + self.side_padding
self.right_panel.width = max(child.texture_size[0] for child in self.right_panel.children) + self.side_padding
available_space = self.width - self.left_panel.width - self.right_panel.width
if available_space > self.height:
self.middle_panel.size = (self.height, self.height)
extra = (self.width - self.height - self.left_panel.width - self.right_panel.width) // 2
self.left_panel.width += extra
self.right_panel.width += extra
else:
self.middle_panel.size = (available_space, available_space)
self.middle_panel.calculate_points()
self.middle_panel.clear_widgets()
self.middle_panel.redraw_blocks()
由于某些原因,它只能在50%的情况下(随机)正常工作。若它加载了worng,那个么在我调整窗口大小后,它就变得正确了。现在,当另外两个布局的每个子级的on_size()
触发时,我也会调用它,这是个坏主意。加载/呈现所有内容时是否有事件或其他事件
更新:
这就是它应该是什么样子(有时也是如此)。
但有时会随机出现下一个问题(请参见右侧的按钮):
更新:
现在我称之为:
class SideButton(Button):
def on_size(self, *args):
self.parent.parent.on_size()
我知道这不是个好主意,因为它会触发smth 30-50次,但我发明的smth再好不过了。看起来你把
宽度和高度搞混了。但是如果您将这些布局放在一个框布局中,并将左面板和右面板的大小提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示提示。我有。而且,即使加载错误,在调整窗口大小后,它也会变得正确。@RyanP抱歉,我忘记了size\u hint\u x
已经没有了。但这并不重要。