プログラミング kivy戦記 余談 これからkivyを勉強される方へ あと、これからkivyを勉強される方。 もし、Pythonも初めてなら、まずPythonの入門書で一通り勉強してから、kivyの勉強をされた方がいいです。 おじさんのように、kivyとPythonを一緒に勉強してしまったために、単に「He... 2018.10.31 プログラミング
プログラミング kivy戦記 とりあえずの終わり 当初は、自分の公開備忘録というコンセプトで作っていたのだが、いつのまにか開発実況となってしまった「kivy戦記」。 この名前の通り、開発中は勘所がなかなかわからず、とても苦労しました。 いまでも、自分としては勘所がつかめているのか自信がない... 2018.10.31 プログラミング
プログラミング kivy戦記反省会(3) UIの不統一 UIの不統一 今回非常に悩んだことがあって、 この画面のように、OKやキャンセルボタンの位置をどうしようか悩んだ。 というのは、私自身、OKが右側、キャンセルが左側というWindowsの流儀の親しんでいたが、教本によっては、逆というのも散... 2018.10.30 プログラミング
プログラミング kivy戦記反省会(2) 命名基準の欠如 命名基準の欠如 kivy戦記でも何度も言っているように、命名基準が事実上なく、それによって苦労させられたことである。 PythonにはPEP8というコーディング規約があるのだが、そこでも書き表していないボタン等の変数の表し方をもっと統一し... 2018.10.30 プログラミング
プログラミング kivy戦記反省会(1) 設計手法の失敗 「これからの時代はPythonだね」と軽く思ったあのころ。 「GUI環境を作るんだったらkivyがいろいろ便利だね」と軽く思ったあのころ。 あれから、半年たって、あの軽く考えていたころが懐かしい。 このkivy戦記シリーズは、2週間ぐらいで... 2018.10.10 プログラミング
プログラミング kivy戦記(20) 最終確認 最終確認ソース 最終確認の結果、最終的にソースはこうなりました。 filelist.py import os import sys import json from kivy.app import App from kivy.lang... 2018.09.26 プログラミング
プログラミング kivy戦記(19-5) id指定による、子Widgetのインスタンスの指定 やはりわからなかった。 なので再び、filelist.pyとfilelist.kvを簡略化したソースを作り、teratailにて質問し、回答いたしました。 (「kivyで、親のインスタンスの値を、子に渡す方法」) ちなみにその時のソースがこ... 2018.09.18 プログラミング
プログラミング kivy戦記(19-4) kv言語で子を作ったときの初期化方法 その後、さらに簡略化したソースでteratailで質問(kv言語で、Pythonコードからのデータの受け渡しができずに、悩んでいます。)したのですが、回答をいただきました。 要は、kv言語でWidgetの子を作ったときの初期化のやり方が、... 2018.09.11 プログラミング
プログラミング kivy戦記(19-3) class間の受け渡しでドツボにはまる いよいよ、前項で作ったkv19c.pyの結果をfilelist.pyやfilelist.kvに統合しようとしたのだけど、うまく動かない。 Traceback (most recent call last): File "/ho... 2018.09.06 プログラミング
プログラミング kivy戦記(19-2) TreeList処理 では、実装する。 kv19c.py import os import sys from kivy.app import App from kivy.lang import Builder from kivy.uix.boxlayout... 2018.08.24 プログラミング
プログラミング kivy戦記(19-1) class分けでつまづいたこと いよいよfilelist.pyの本題。いままでは仮に「シンカリオン」何たらで埋めていたこの部分を実装する。 で、前回同様この部分を独立させてテストロジックをつくっていたら、画面が出ない! で、2日ほど悩んでいて、こういうことに気が... 2018.08.17 プログラミング
プログラミング kivy戦記(18-3) Windowsのドライブを考慮した、ディレクトリリスト 最近このブログが「メイプルタウン物語」なるアニメの感想ばかりになっていて、kivyについては遂に投げ出してしまったのではないか、とお思いの皆様。(2018-10-10追記 結局「メイプルタウン」は特撮アニメ館に分離・独立させました。)(20... 2018.08.10 プログラミング
プログラミング kivy戦記(18-2) RecycleViewを使えた。とりあえず。 前回、RecycleViewがよくわからん、と愚痴ったわけですが、あれはどうも、リファレンス()がそのRecycleViewの概略に行きすぎて、実際の書き方についてわかりづらい、と言う結論に達しました。 その後いろんなソースを目にして、一番... 2018.07.23 プログラミング
プログラミング kivy戦記 ぐち RecycleViewがよくわからん 現在、Windowsのパス取得については、良いサンプルコードが見つかり助かっていますが、 (Python kivy: how to use filechooser access files outside C drive ここで使っている... 2018.07.20 プログラミング
プログラミング kivy戦記(18-1) Windowsでの確認でドライブレターの問題が出る いよいよメインのAllSCNのボタンに処理を割り付けることにする。 ここの仕様が曖昧だったので、こう決めておいた。 パス表示部分は、この内容を起点にして、下記のtree(現在は仮にシンカリオン云々となっている)で、ファイルの内容を表示... 2018.07.17 プログラミング
プログラミング kivy戦記(17) 自分のメソッドを、別のclassで「OK」が押されたときに実行させる いよいよメインのAllSCNへ。 前回、自分のソースは読みにくいということで、しびれを切らせてjsonの読み込みと書き込みを、class分けしました。 filelist.py import os import sys import j... 2018.07.13 プログラミング
プログラミング kivy戦記 intermission ソースコードについて この「kivy戦記」シリーズを掲載しているのですが、一番恐れていることは、 おまえのソースは読みにくい ということでしょうかww 当初Python自体もよくわからないところからスタートし、仕様変更も何度かあったので、実を言うと、特に名... 2018.07.09 プログラミング
プログラミング kivy戦記(16-11) 入力チェックと、ScreenManager管理の画面間データの受け渡し 例えば、この画面 このフィールドのパスの「左巻きなると」(実在する)を、「why」(実在しない)に書き直す。 すると、、、 ・・・ここはどこだ? とりあえず遡ろう。 落ちなかったけど、変な方向に行くので、やはりチェックをかけよ... 2018.07.06 プログラミング
プログラミング kivy戦記(16-10) json読み込みから、一通り動くか確認してみる では、いよいよjson読み込みから、一通り動くか確認してみる。 json読み込みロジックを書いてみよう。 filelist.py(余計なロジックやimportは、外しています。) import os import sys import ... 2018.07.04 プログラミング
プログラミング kivy戦記(16-9) Filechooserで現在選択されているパスを表示する(暫定版) でも、ちょっと違和感が、、、、 さっきの選択画面に戻ろう。 あれ? ここはどこなんだ? 現在選択中のパスがわからないと言う問題が、ここで発生したのだ。 ここで、上部の「読み込み中」の後ろに、現在選択パスを入れることにした。 filelis... 2018.07.04 プログラミング
プログラミング kivy戦記 閑話 喉から手がでるほど欲しかった本 前回、もったいぶって終わったのですが、このときに発生した問題は、 この表示をしたときに、一体自分がどこにいるのかわからなくなったと言うことです。 現在パスを表示するということにして、一応、いろいろ試しているのですが、6月20日時点でまだ... 2018.06.21 プログラミング
プログラミング kivy戦記(16-8) フォルダ選択「は」解決 そこで、「naritoブログ Kivyで、シンプルなエディタ② ()」と、「公式マニュアル FileChooser ()」を参考にして、まず選択をフォルダのみにした。 filelist.py import os import sys ... 2018.06.15 プログラミング
プログラミング kivy戦記(16-7) フォルダの選択のつもりだった では、フォルダの選択を作ろう。この部分である。 既存のロジックであるAllSCNで使っている部分があるので、SetSCNでもこれを参考にしてコピーする。 filelist.kv <SetSCN>: name: '... 2018.06.12 プログラミング
プログラミング kivy戦記(16-6) json書き込みと、エラーメッセージ では、いよいよjsonを書き込もう。 同時に、SetSCNの仮表示「ぎゃははは」を正式ロジックである開始データパスに変更しよう。 filelist.py import os import sys import json from ki... 2018.06.08 プログラミング
プログラミング kivy戦記(16-5) 画面間のデータの受け渡し SetSCNの仕様を再掲しよう。 で、「開始パス」横の「ファイルパス」を開始データパス(この時点は、開始データパスの初期)としたいわけだが、ここで問題が起こった。 AllSCNで求めた値は、SetSCNで表示されないのだ。 SetSCN... 2018.06.06 プログラミング
プログラミング kivy戦記(16-4) 簡易版OS毎確認で、文字コードの問題が起きるの巻 さて、現在仮ロジックになっているOS毎設定を、正式なロジックにする。 Windowsの時、UNIX系統の時は、それぞれの環境設定を読み込むわけだが、その前に、そのほかのOSの時の処理を、エラーメッセージを表示して、処理を終わらせよう。 ... 2018.06.01 プログラミング
プログラミング kivy戦記(16-3) 初期表示をしたい場合(追記あり) メッセージが2つ出る問題。 これは、「kivy戦記(15-2) 荒ぶるScreenManager (」で回避した、__init__が2回動いている問題に他ならない。 ScreenManagerの問題と切り分けるために、実験的にこんなソース... 2018.05.31 プログラミング
プログラミング kivy戦記(16-2) 開始データパスの初期を求める OS情報を求める まず、jsonデータが現時点ではないので、開始初期データパス(2018-06-04 名前がややこしいので改称しました)の初期状態をユーザーパスから求めることにする。 これは、環境変数から求めるわけだが、実行しているOSによって求め方が違うの... 2018.05.28 プログラミング
プログラミング kivy戦記(16-1) 初期設定画面を作る(追記あり) では、準備も出来たところなので、初期設定画面を作ることにしよう。 (2018-06-05 画面差し替え 左上のtextが初期パスから「開始パス」に変更されています。以下ソース、スクリーンショットは、この項では変更されていません) まず... 2018.05.28 プログラミング
プログラミング kivy戦記(15-3) MessageBox的なもののできあがり では、popupに、キャンセルボタンを入れて、動くか確認しよう。 import os from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy... 2018.05.24 プログラミング