--- Title: ベクタパス作成ツール 6 Author: yamasyuh68 Web: https://mimemo.io/m/M2rKBGzJxdGD0Em --- 190726 # ファイルの入出力改善 ## ロード - [画像にパスを加えるツール 2](https://mimemo.io/m/BV8YKG0g3k4ry91) ここで作ったクラスをdesignerで作ったダイアログにpromotした - ダイアログを出すのは、Qdialogクラスとつなげるように実装してexecで表示する - これはしばし悩みました、簡単だと思ってたんだけど ダイアログベースのスタンドアロンと、プログラムの中から呼び出すのでは違うんだね、まあ当然か - ダイアログで選択したファイル名をどうやってもらうか これはクラスにカスタムシグナルを設定して本体のスロットで直接受けるようにしたらうまくいけた - **いろんな技術が生きてきた!!!** ## save - これはコードを書いておいたのでコピペですんなりいけました - 上書きするかどうかを聞いて、新規なら重複しない連番のファイル名を作って保存してやるだけ - 保存と読み込みが普通に出来るようになるとかなりソフトっぽくなってきますね。簡単なので色んなパスを作って保存した。あとはこのパスを使って画像に加えていくだけ、それは別ソフトだ ---- 190729 # modeless Dailog - 結構難しかったけど意外と簡単だった **show()でいけるが、Dialogオブジェクトが解放されないようにselfにしておくなどの工夫が必要**ってこと、webで見つけました - 瞬間表示されて消える症状だった これはpythonのメモリ管理が優秀すぎるからなのかな cだと自分で解放しない限り残るから表示されるのかもしれない 綺麗なオチというか、こういうところはプログラミングのパズル的な部分 - パーツ選択のダイアログなので基本はmodelessが望ましい というか、modelessで困る場合って逆に少ないと思うので、基本をmodelessとして設計して欲しいよなあ - ただし、メモリは気になる。しっかり解放されてるんだろうか? どこかで明示的にdelしてやれば良いのだろうが、タイミングが難しい ダイアログを出しっ放しにして本体を閉じたら、ダイアログだけが残った そういうことです - このソフトに関してはメモリは14Mくらいしか使ってない。全然気にしなくてもいいレベルなんだけどね - APtoPicにもこのダイアログを搭載予定。パスの属性設定用のダイアログもmodelessで作ろう --- --> [PyQt でベクターオブジェクト作成ツールを作る #](https://mimemo.io/m/3Rx1XoR367le95E)