Python中文
首页
教程
问答
标签
搜索
登录
注册
基维:当我改变方向时改变布局
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我想创建一些东西,当窗口的方向或大小改变时,可以改变它的总体布局。在下面的例子中,我试图用3个按钮来完成这个任务。但它失败了,并抱怨说,当我试图将按钮添加到布局中时,它们已经有了父级。为什么他们已经有父母了?我从来没有把它们添加到AdaptWidget中。。。 更重要的是,我应该如何实现我想实现的目标? 代码如下:</p> <pre><code>from kivy.app import App from kivy.uix.widget import Widget from kivy.uix.button import Button from kivy.uix.boxlayout import BoxLayout class AdaptWidget(BoxLayoutWrite failed: Broken pipe def __init__(self, **kw): super(AdaptWidget, self).__init__(**kw) self.but1 = Button(text='but1') self.but2 = Button(text='but2') self.but3 = Button(text='but3') self.layout = None def on_size(self, *args): self.clear_widgets() if self.size[0] > self.size[1]: self.layout = BoxLayout(orientation='horizontal') self.but1.size_hint = 0.7, 1 self.layout.add_widget(self.but1) vert = BoxLayout(orientation='vertical') self.layout.add_widget(vert) self.but2.size_hint = (1,0.5) self.but3.size_hint = (1,0.5) vert.add_widget(self.but2) vert.add_widget(self.but3) else: self.layout = BoxLayout(orientation='vertical') self.but1.size_hint = 1, 0.7 self.layout.add_widget(self.but1) horiz = BoxLayout(oreintation='horizontal') self.layout.add_widget(horiz) self.but2.size_hint = 0.5, 1 self.but3.size_hint = 0.5, 1 horiz.add_widget(self.but2) horiz.add_widget(self.but3) self.add_widget(self.layout) class TestLayoutApp(App): def build(self): return AdaptWidget() if __name__ == '__main__': TestLayoutApp().run() </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>每次你的<code>AdaptWidget</code>的大小改变,你的<code>on_size</code>回调都会运行——但是回调不会从它们的父控件中删除任何小部件,因此{<cd2>}在第二次调用时总是崩溃。您可以始终确保从其父控件中删除小部件:</p> <pre><code>if widget.parent is not None: widget.parent.remove_widget(widget) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
上传图片使用Django Ckeditor获取服务器错误(500)
1 回答
上传图片到 Google App Engine,来自非网页客户端
6 回答
上传图片到Djang的cloudinary
5 回答
上传图片到Flask
4 回答
上传图片到googleappengine并与用户分享图片
9 回答
上传图片到googlecolab,并使用Keras预测分类
2 回答
上传图片到s3python
3 回答
上传图片到s3后,上传附带的拇指
9 回答
上传图片在Django,希望是一个循序渐进的指南?
10 回答
上传图片并显示在Django 2.0模板上
6 回答
上传图片时创建动态路径
10 回答
上传多个图像会破坏除第一个Flas之外的所有内容
4 回答
上传多个文件上传文件FastAPI
10 回答
上传多个文件到Django
7 回答
上传多张图片
2 回答
上传大数据到谷歌硬盘给400
4 回答
上传大文件nginx+uwsgi
8 回答
上传大文件不工作谷歌驱动Python API
9 回答
上传大文件到S3
3 回答
上传大文件太慢
8 回答