kivy

kivy戦記(9-3) 強敵ObjectProperty(None)との勝利

kivy
この記事は約3分で読めます。
(2018-10-4追記)
ここで、kvファイル上のOpeSCNとResultSCNは、AllSCNの子として作って失敗して、次の項でそういう作り方をやめていますが、そののちkivy戦記(19-3) class間の受け渡しでドツボにはまる 以降で成功していますので、こういう使い方をするときは、そちらの方を参照してください。

あれから、いくつもの年月が経ったのだろう?(5日です)
季節は温暖だった時期を過ぎ、一気に寒冷の世界になってしまった。(本当に)
そんな中でも、ObjectProperty(None)との闘いは、延々と続いたのであった。
一つの打開案があった。
そうだ、ロジックをシンプルにしてしまおう。
そういうわけで一時的にロジックをシンプルにした。

ResultSCNだけ生かして、その時点でのObjectProperty(None)の挙動を見るを見るのである。(「れ」の数が違うはなしよ。)
filelist.py


from kivy.uix.screenmanager import Screen
from kivy.app import App
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.widget import Widget
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.popup import Popup
from kivy.uix.treeview import TreeView, TreeViewLabel, TreeViewNode
from kivy.uix.label import Label
from kivy.properties import ObjectProperty
from kivy.properties import StringProperty
from kivy.core.text import LabelBase, DEFAULT_FONT
from kivy.resources import resource_add_path
# 日本語フォント設定
resource_add_path('./fonts')
LabelBase.register(DEFAULT_FONT, 'ipaexg.ttf')
class ResultSCN(Widget):
    txt = ObjectProperty(None)
    def __init__(self, **kwargs):
         super(ResultSCN, self).__init__(**kwargs)
         self.txt.text = 'うふふふふふふふ'
class FilelistApp(App):
    def build(self):
        return ResultSCN()
if __name__ == '__main__':
    FilelistApp().run()

filelist.kv


<ResultSCN>:
    txt: txt
    BoxLayout:
        size: root.size
        pos: root.pos
        Label:
            id: txt
            text: 'れれれれれれ'
ResultSCN:

で、結果は。

うふふふふふふ。
ObjectProperty(None)は、動くことを確認した。
あとは、ロジックの復帰である。
しかし、そこには越えなければいけない壁があったのだ(続く)

タイトルとURLをコピーしました