kivy

kivy戦記(6) ここまでのまとめ

kivy
この記事は約3分で読めます。
今まで書いてきたものを、ちょっとまとめてみましょう。
・kvファイル上での左隅に書くルートclassは、pythonファイル上でも明記する必要がある。
・ただしこれだけだと表示が出ないので、別途<>で詳細を書いた方がいい。
これは、kvファイル上で、’Hallo Foods’を出そうとした場合、

AllSCN:
    Label:
        text: 'Hallo Foods'

では出ないので、


<AllSCN>:
    Label:
        text: 'Hallo Foods'
AllSCN:

と、表記する。その時Python側には、


class AllSCN(Widget):
(あとはいろいろ・・・)

を記述する。

また、ルートclassの下層に、classを宣言してもうまくいかない。
(他人を作ったソースではそれで動いているものがあるが、現時点ではなぜ動いているかは理解できず)
例(NG例)

<AllSCN>:
    BoxLayout:
        size: root.size
<OpeSCN>:
    BoxLayout:
        Label:
            text: 'aaaa'
            canvas.before:
                Color:
                    rgba: 0,.5,0,1
                Rectangle:
                    pos: self.pos
                    size: self.size
AllSCN:
    OpeSCN:
例(OK例)

<AllSCN>:
    BoxLayout:
        size: root.size
    OpeSCN:
<OpeSCN>:
    BoxLayout:
        Label:
            text: 'aaaa'
            canvas.before:
                Color:
                    rgba: 0,.5,0,1
                Rectangle:
                    pos: self.pos
                    size: self.size
AllSCN:
・表示されたウインドウすべてをWidghtで表示させるには、size:root.sizeを使う。
・size_hintは、この直下では使用できない。(2018/4/19追記 勘違いでした。詳しくはkivy戦記(9-5) サイズ問題解決 https://koh-sen.jp/blog/archives/7162
・BoxLayoutの方向を決めるorientationは、余分に宣言できない。
kivyにはインスペクタ機能があり、

python3 対象のPyhtonファイル.py -m inspector

で、インスペクタモードになり、Ctrl+Eで内容を表示できる。

とりあえずこんな所か。
kivyの先達諸氏から嵐のようなツッコミが来たらどうしよう、、、、

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