前提・実現したいこと
漠然とした質問ですみません。
pythonのGUIはどのように作ればいいでしょうか
★実際にはpythonでなくてもShapeファイルの操作が出来れば
.netでもいいのですが私が知っていて使いやすそうなのが
pythonだというだけの話です。
GUIの要件は以下のようなものを考えています。
・ファイルを指定
・実行と結果の確認
場合によっては
・ファイルの中身を変更するパラメーターを指定
Shapeファイルの列名を画面で一覧表示し、それぞれ変換方法を指定する
といったような操作をイメージしています
好きにしろと言われそうな気もしますが意見を聞きたくて質問します。
良い組み合わせを教えて頂けるのでも嬉しいです。
質問内容にshapeファイルの操作云々を記載していますが
shapeファイルに関係ない回答で構いません。よろしくお願いします。
発生している問題・エラーメッセージ
現在はpythonのプログラムにコマンド引数で指定したり
プログラムにパラメータを埋め込みで実行しています。
ただ、これでは使いにくい。
画面でパラメータを指定して実行出来るようにしたい。
試そうとしている事1
tkinterを使って画面を作る
tkinterを使ったのはサンプルでダイアログみたいなのを作ってみた程度でしかないのですが
デザインのコードを自分で記述しないといけないというのと
pythonの実際の処理の部分がわかりにくくなるという印象から忌避感があります。
食わず嫌いでしょうか…
試そうとしている事2
こちらは自分の知ってる範囲で想像する無理やりな感じで
実現可能かどうかもわからないですが
.netで画面を作る。comにする。win32comでpythonから呼び出す。
イベントは
https://serverless.hateblo.jp/entry/2018/11/27/010511
が参考になりそう?
と言った感じですが、こっちの方がtkinterより大変?
ただ画面はやっぱり作りやすい印象があります。
試そうとしている事3
.netで画面を作って、その画面からpythonのプログラムを実行させる。
コマンド引数で指定したり、パラメータファイルで内容をやり取りしたり
しないといけないですが「試そうとしている事2」よりはシンプルかなと思ってます。
補足情報(FW/ツールのバージョンなど)
windows10
Python 3.9.2
(解決済みにしてからの追記)
色々回答ありがとうございます。
ベストアンサーは、Excelの機能を使えるVBAということにさせて頂きました。
理由は、シートでパラメータとしての入力内容や処理結果を表示したり後に残せたりすること
フォームも必要であればVBAで画面を作れるし、呼び出し方もhtaや.netとそれほど変わりないためです。
これは用途がバッチ起動用GUIなのでtkinter等のようにイベント毎にpythonで処理をさせたいというのが少ないため起動パラメーター設定と結果出力のGUI部分と処理の実体は独立した方がプログラムとして見通しが良く、独立させるならGUI部分はpythonである必要が無いと言う理由からです
ただExcelを必ず起動して処理しないといけないので、シートを扱う必要がない場合には
他の選択肢が良いのかなと思っています。
htaもお手軽さという点でよいのですが、.netのGUIを作れる状況でという条件が付いていましたので
作れる状況であるなら.netの方が扱いやすいと考えました。
pysimpleguiは、tkinterがとっつきにくかったのに比べ、容易に扱えそうな感じがしたので
pythonオンリーの場合良いかと思います。pipでインストールしないといけない点だけが
tkinterの方が優位な点だと思っています。
GUIビルダに関しては、pythonのGUIを画面でデザイン出来るので使いこなせるようになれば
優位になるかと感じました。
QGISに関しては確かにpythonを実行できるGUI.デスクトップアプリケーションです
Shapeを扱う上でも色々な機能があると思うので良いと思っています。
shapeの図形的な結果を見たい場合はこれがよいと思います
pythonでも図形的な結果を見れますがQGISの方が詳細に見易いし、図形と属性の紐付きも分かりやすいかと思います
ただpythonの処理を流すためのGUIというより逆でデスクトップアプリケーションのマクロ言語と感じています。
まだまだそれぞれ習熟していないので、私の印象が正しいかどうかわかりませんし
本当にどれがベストなのかわかっていないと思うのですが、一先ずベストアンサーを選びました。
用途や状況に応じて回答頂いた内容がそれぞれ役に立つと感じています。
ありがとうございました。
と書いているとデスクトップアプリのMVCでMがpythonの場合でV、Cは何が良いかと言う質問な感じがしてきました。Cがあやふやです。いやそんな話じゃなくてGUIの部分とバッチ処理のデータのやり取りを簡略化するにはどうすれば良いかと言う問題が残ってる気がします。
pythonオンリーなら、この問題は少し簡単になりますね。GUIをVBA,.netにした場合、ファイルでのパラメータのやり取りになると思いますが、やはりjsonでやり取りするのがしやすいのでしょうか。vbaからだと【EXCEL VBA】VBA-JSONを導入したい(2020年度版)これでしょうか。
MIT licenseのようなので記載だけ気をつけないとかな。
当面はcsvか、独自フォーマットでいいかな。
回答6件
あなたの回答
tips
プレビュー