<h2>解释</h2>
<p>ListView的<em>项字符串</em>没有更新,因为下面的语句意味着<strong><em>搜索结果</em></strong>被分配了<strong><em>值</em></strong>来自<strong><em>搜索结果_list.item\u字符串</em></strong>。你知道吗</p>
<pre><code>search_results: search_results_list.item_strings
</code></pre>
<p><strong><em>id()函数</em></strong>将显示两个变量(<em>搜索结果</em>和<em>列表视图的项字符串</em>)不指向同一列表对象。因此,更新<em>搜索结果</em>时,不会更新<em>项字符串</em>。你知道吗</p>
<h2>解决方案</h2>
<h2>Python文件</h2>
<ol>
<li>将<em>搜索结果</em>从<em>列表属性</em>更改为<em>对象属性</em></li>
<li>更换<em>self.search\u结果</em>与<em>self.search\u结果.item\u字符串</em></li>
<li>用<em>def build(self)替换<em>pass</em>:return LibraryMain()</em></li>
</ol>
<h2>kv文件</h2>
<ol>
<li>替换搜索结果:搜索结果_list.item\u字符串</em>搜索结果:搜索结果列表</em></li>
<li><p>声明了两个根小部件。删除<strong>LibraryMain:</strong></p>
<p>LibraryMain:#这是一个根小部件</p>
<p><;LibraryMain>;:#这是一条规则</p></li>
</ol>
<h2>示例</h2>
<h2>你知道吗主.py你知道吗</h2>
<pre><code>from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
class LibraryMain(BoxLayout):
search_input = ObjectProperty(None)
search_results = ObjectProperty(None)
def searched_location(self):
print(self.search_results.item_strings)
newis = ['1', '2', '3', '4']
self.search_results.item_strings.extend(newis)
print(self.search_results.item_strings)
print(f"""Searched for: {self.search_input} {self.search_results.item_strings}""")
class LibraryApp(App):
def build(self):
return LibraryMain()
if __name__ == '__main__':
LibraryApp().run()
</code></pre>
<h2>kv文件</h2>
<pre><code>#:kivy 1.10.0
<LibraryMain>:
orientation: "vertical"
search_input: search_box.text
search_results: search_results_list
BoxLayout:
height: "40dp"
size_hint_y: None
TextInput:
id: search_box
size_hint_x: 50
multiline: False
on_text_validate: root.searched_location()
Button:
text: "Search"
size_hint_x: 25
on_press: root.searched_location()
Button:
text: "Current Location"
size_hint_x: 25
on_press: root.searched_location()
ListView:
id: search_results_list
item_strings: ['a']
</code></pre>
<h2>输出</h2>
<p><a href="https://i.stack.imgur.com/n1m1p.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/n1m1p.png" alt="Img01 - ListView's item_strings updated"/></a></p>