質問1:
pythonのguiライブラリとしてはtkinter、pyqt、kivyなどがあると思います。しかし、これらを使用したアプリというのはあまり見かけません。pyqtについてはライセンスの問題で多く使われていないと推察できますが、他2つも簡単なアプリにしか使用されないと感じます。
jsのelectron製ソフトなら多く見かけますが、この差はどこから生まれるのでしょうか?
質問2:
electron製のソフトでも、guiがシンプルなものが多いと思います。windows formなどと比較すると、electronやtkinterでは複雑なguiを作るのが難しいのでしょうか?
よろしくおねがいします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
回答3件
0
ベストアンサー
私個人の意見は以下の通りです。
- tkinter: 見た目をモダンな感じにしようとするといろいろ大変
- pyqt: まぁライセンスが一番のネック
- kivy: 古い環境への懸念が残る(古いWindows端末のGPU周りの問題で起動しなかったことがある)
こんな状況なので、Windowsなら素直に.NETなどで。。。マルチプラットフォームならHTMLで。。。と考えるのが自然な流れなんだと思います。PythonでGUIを組める人達よりも、.NETやWEB系の人口の方が圧倒的に多いでしょうしね。Electronに関してはアリだと思いますが、あれだと「もはやPythonなのか?」という疑問が湧いてきます。
ご参考までに:BlenderはPython製のアプリですが、GUIは自前らしいです。
追記 → wxPython: 触ったことがないに等しい
投稿2020/06/18 04:09
編集2020/06/18 04:11総合スコア6161
0
質問1への返答
tkinter, pyqt, kivy, Electronのどれか1つを選んでGUIを作りなさいと言われたら、今なら間違いなくElectronを選択します。理由はいくつかありますが、最大の理由はパッケージングの容易さです。
tkinter, pyqt, kivyの3つは配布する際、ユーザにわざわざpython環境を入れてもらうことは大変なのでpyinstaller等に頼ることになるだろうと思います。ちょっとしたアプリケーションであれば良いですが、複雑なものは動くかどうか不安なところがあります。同じ理由からElectronを使う場合はJavaScriptのみで組みます(pythonと連携させると結局インストールが必要になるため)。
質問2への返答
複雑なGUIを作るのが難しいかと言われると、利用可能な部品(コンポーネント)の数に依存するのではないでしょうか。少なくともQTはリッチな設計ができます。Electronはその観点で考えたことはありませんでしたが、今あるメジャーなアプリケーション(Slack,VSCode,Discordなど)を見ると、多機能ではありますが確かにGUI的には非常にシンプルです。ただ近年のマルチデバイス化を考えると、複雑なGUIは避けたいと思うようになってきました。時代背景もあるのかも知れません。
投稿2020/06/18 00:26
総合スコア1615
0
pythonのguiライブラリとしてはtkinter、pyqt、kivyなどがあると思います。しかし、これらを使用したアプリというのはあまり見かけません。
まぁ、linuxだったら結構見かけますけどね。
pythonは、pythonのシステムありきの言語です。言い換えると、pythonがシステムにインストールされていることが前提になっています。
よくpyinstallerで問題になっていますが、結局のところこの辺りが原因で難しくなっていると思います。
だから、pythonがインストールされていないWindowsでは導入しづらいのではないでしょうか。
また、tkinterはTcl/Tk、PyQtはQtという、他言語のGUIライブラリをPythonで使うためのモジュールです。
つまり、Pythonだけではなく、それらのライブラリの導入も必要である点も関係あると思います。
(WindowsのPyQtが、パッケージにQtのDLLごとぶっこんであるのを見た時には、ムチャしてるなぁ、と思いました)
windows formなどと比較すると、electronやtkinterでは複雑なguiを作るのが難しいのでしょうか?
複雑、とは違うかもしれませんが、tkinterは先程言ったとおりTcl/TkというGUIライブラリのPythonモジュールです。
Tk/Tcl自体古いものであり、現在のモダンなGUIとは違い昔のGUIのようなシンプルなものになっています。
投稿2020/06/18 00:21
総合スコア3662
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。