Python中文
首页
教程
问答
标签
搜索
登录
注册
我可以在应用程序运行时多次加载.kv文件吗?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有两个不同的<code>.kv</code>文件:</p> <ol> <li>文件定义主界面--><code>PriceTrackerUI.kv</code></li> <li>文件定义弹出窗口--><code>PopupWindow.kv</code></li> </ol> <p>我想“刷新”弹出窗口的内容,每次我关闭它</p> <p>在<code>PopupWindow.kv</code>中,程序通过加载已存在于目录中的文件来打开一个映像。每次运行应用程序的后期都会覆盖此文件。问题是,<code>.kv</code>文件完全是在程序初始化时加载的,以后不会再加载。由于它在主UI窗口中是有意义的,而在弹出窗口中则没有,弹出窗口的内容会随着主UI窗口中按钮的每次单击而改变</p> <p>下面是一个最小的代码</p> <p><code>PopupWindow.kv</code>:</p> <pre><code><PopupWindow> orientation: 'vertical' size_hint: 1, .9 BoxLayout: orientation: 'horizontal' cols: 2 AsyncImage: source: root.daily # loading image stored under that variable allow_stretch: True size_hint: .9, 1 pos_hint: {'x': 0, 'center_y': .5} (...) </code></pre> <p><code>PriceTrackerUI</code>:</p> <pre><code><SearchPerformer> GridLayout: size: root.size cols: 2 rows: 3 (...) FloatLayout: Button: text: 'Search' size_hint: .5, .4 pos_hint: {"x": .75, "top": .9} border: 20, 20, 20, 20 on_press: root.input_grabber(root.dt) on_release: root.clear() on_release: root.hit_enter() </code></pre> <p><code>main.py</code>:</p> <pre><code>import UI UI.PriceTrackerUIApp().run() </code></pre> <p><code>UI.py</code>:</p> <pre><code>import kivy import database from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.popup import Popup from kivy.properties import StringProperty from kivy.lang import Builder kivy.require('1.11.1') user_input = [] Builder.load_file('PopupWindow.kv') class PopupWindow(BoxLayout): daily = StringProperty('./daily.png') def popup_show(): pop = PopupWindow() pop_win = Popup(title="Analysis", content=pop, size_hint=(.9, .9)) pop_win.open() class SearchPerformer(BoxLayout): dt = database def hit_enter(self): popup_show() def input_grabber(self, database): specs = [self.ids.crmk.text, self.ids.crmd.text, self.ids.cryr.text, self.ids.crft.text] (...) user_input.extend(specs) database.add_to_database() database.query_database() database.run_plot() # daily.png image gets updated after running that method class PriceTrackerUIApp(App): def build(self): return SearchPerformer() </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以使用<code>Builder.load_file</code>或<code>Builder.load_string</code>在任意点加载kv文件。当您实例化一个小部件时,将应用任何以前加载的规则</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何重塑数组、迭代列的所有行并将重塑后的数组分配给新列?Python/Pandas/Numpy
2 回答
如何重塑数组的形状?
6 回答
如何重塑文本数据以适应keras的LSTM模型
6 回答
如何重塑未对齐的数据集,并使用numpy丢弃剩余数据?
3 回答
如何重塑此数据以使用绘图
9 回答
如何重塑此数据帧?
6 回答
如何重塑此数据集以适应RNN
4 回答
如何重塑没有列的数组?
10 回答
如何重塑测试数据帧,使其维数与训练和预测工作中使用的维数相同?
1 回答
如何重塑系列以在StandardScaler中使用它
5 回答
如何重塑线性回归的数据
8 回答
如何重塑线性回归的数据?
9 回答
如何重塑表格?
1 回答
如何重塑要堆叠的重复宽数据帧?
2 回答
如何重塑输入以放入二维层?
6 回答
如何重塑输入神经网络的三通道数据集
1 回答
如何重塑这个numpy数组
7 回答
如何重塑这个numpy数组以排除“额外维度”?
7 回答
如何重塑这个numpy阵列?
2 回答
如何重塑这个数据帧
1 回答