2018年12月18日火曜日

開発環境

追記あり。

Kivyプログラミング ―Pythonで作るマルチタッチアプリ― (実践Pythonライブラリー) (原口 和也(著)、久保 幹雄(監修)、朝倉書店)の1(Kivyを学ぶための準備)、1.4.4(Hello, world.)を取り組んでみる。

コード(Emacs)

Python 3

#!/usr/bin/env python3
from kivy.app import App
from kivy.uix.button import Button


class MyApp(App):
    def build(self):
        return Button(text='Hello, world!')


if __name__ == '__main__':
    MyApp().run()

入出力結果(Terminal, cmd(コマンドプロンプト), Jupyter(IPython))

$ ./sample0.py
[INFO   ] [Logger      ] Record log in /.../.kivy/logs/kivy_18-12-18_3.txt
[INFO   ] [Kivy        ] v1.10.1
[INFO   ] [Python      ] v3.7.1 (default, Oct 21 2018, 09:01:26) 
[Clang 10.0.0 (clang-1000.11.45.2)]
[INFO   ] [Factory     ] 194 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_imageio, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [GL          ] Using the "OpenGL ES 2" graphics system
[INFO   ] [GL          ] Backend used <gl>
[INFO   ] [GL          ] OpenGL version <b'2.1 INTEL-12.2.17'>
[INFO   ] [GL          ] OpenGL vendor <b'Intel Inc.'>
[INFO   ] [GL          ] OpenGL renderer <b'Intel(R) Iris(TM) Pro Graphics 6200'>
[INFO   ] [GL          ] OpenGL parsed version: 2, 1
[INFO   ] [GL          ] Shading version <b'1.20'>
[INFO   ] [GL          ] Texture max size <16384>
[INFO   ] [GL          ] Texture max units <16>
[INFO   ] [Window      ] auto add sdl2 input provider
[INFO   ] [Window      ] virtual keyboard not allowed, single mode, not docked
[INFO   ] [Base        ] Start application main loop
[INFO   ] [GL          ] NPOT texture support is available
[INFO   ] [Base        ] Leaving application in progress...
$

実行したらwindowは起動したものの、window(あるいは背景色、ボタン)は真っ黒で、しかもテキスト「Hello, world!」が表示されなかった。

「Hello, world!」でいきなり躓いたなぁとがっかりしかけてたところ、拡大したら背景色(あるいはボタンの色)が灰色になってテキストも表示された。

もちろん全画面表示でもテキストは表示された。

その後、最初の、起動時のウィンドウのサイズの戻してもメッセージは表示された。

ボタンの色の変更についても、メッセージの出力と同様で、メッセージがない場合は何も起こらなくて、メッセージが表示された場合にはクリックでボタンの色も水色に変わるようになった。トラックパッドの場合、タッチだと一瞬、ドラッグだと変更されたままになった。Magic Mouseでは本文の通りクリックしたままだとボタンの色が水色に変わって、離すと元の灰色に戻るといった挙動だった。

Kivyはマルチタッチアプリを開発するためのパッケージだから、全画面表示での操作が前提になってるのかも。あるいは今後出てくる設定等次第では、起動時に全画面、あるいは全画面ではなくてもボタンとそのテキストが表示できるのかも。

ということで、もう一度試してみることに。

そうしたら、起動しただけでは最初の1枚目のスクリーンショットと変わらず真っ黒な背景のままで、Magic Trackpadでタップしても3本指のドラッグしても何も起きず。同様にMagic Mouseでクリック、クリックしたままにしても何も起こらず。

ただ、Windowを移動(ツールバーをドラッグして移動)した上でMagic Trackpad、Magic Mouseで同様の操作をしたら、2つ目の画像のように背景色が灰色になってテキストが白色で表示されるように。(Windowを移動しただけでは真っ黒なまま。)

なので最初に試した拡大、全画面表示で動作するようになったというのは、Windowの位置が動いたから動作するようになったと考えたほうがいいのかも。と思ったら、起動、Windowを移動した場合は、その後にクリックする必要があたけど、Windowsのサイズを変更した場合はサイズを変更した時点でクリック等をしなくても背景色が灰色になってテキストが表示された。

ということで、テキスト「Hello world!」が表示されるタイミングを整理すると、

  • 起動時点では真っ黒。
  • 起動、ツールバーをドラッグでWindowを移動、クリックでテキストが表示される。
  • 起動、Windowのサイズを変更(拡大、縮小(ズームしての文字の拡大、縮小ではなく端の両矢印によるWindowsサイズの拡大、縮小)、全画面表示を含む)時点でテキストが表示される。

ということを確認できた。

何か依存関係をインストールし忘れてるとか手元の環境の問題なのか、Kivyの側のイベント等の仕様(問題?)なのかは分からず。

2018/12/21: 追記。

起動時点では真っ黒だったのが通常通り「Hello, world!」(上の4枚目、最後のスクリーンショットと同様)が表示されるようになった。はっきりとした理由は分からず。。

思い当たることととしては、前回からMacをスリープ状態ではなく再起動(macOSのアップデートがあった)したことくらいだから、もしかしたら手元の環境構築に何か問題があったのかも。

0 コメント:

コメントを投稿