Python 3.6.4 - Kivy 1.11.1 - KivyMD 0.104.1
私は Kivy と kivyMD についてはかなり新しいものであり、スレッド化と共有リソースについてはさらに詳しく知っています。
今日は、3 つの MDGridlayout (sbgridfamily、sbgridgender、sbgridspecies) に SmartTileWithLabels を順番に入力します。正常に動作しますが、ロード時間がかなり長い (~5 秒)。
この読み込みを最適化するために、試しました
ロックやセマフォを使用せずに負荷を異なるスレッドに分割すると、一部のセルが空になります。
MDGridlayout を構造から削除して 1 つのスレッドでオンザフライで作成すると、最初のタイルを MDGridlayout に追加するとすぐにアサーション エラーが発生します。
_apply_rule assert(rule not in self.rulectx) AssertionError
では、MDGridlayouts を並行して構築するための最良のアプローチは何でしょうか?
画面の構造は次のとおりです。
<Screen>
BoxLayout:
orientation:'vertical'
MDToolbar:
title: 'Titre'
...
MDTabs:
Tab:
text: "Famille"
ScrollView:
id: sbgfscrollview
do_scroll_x: False
MDGridLayout:
id: sbgridfamily
...
Tab:
text: "Genre"
ScrollView:
do_scroll_x: False
MDGridLayout:
id: sbgridgender
cols: 3
...
Tab:
text: "Esp\u00E8ce"
ScrollView:
do_scroll_x: False
MDGridLayout:
id: sbgridspecies
cols: 4
...
# Will always be at the bottom of the screen.
BottomAppBar: