質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

6974閲覧

python のguiライブラリを使用したソフトが見られない理由は?

blendegg

総合スコア81

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

5クリップ

投稿2020/06/17 23:43

質問1:
pythonのguiライブラリとしてはtkinter、pyqt、kivyなどがあると思います。しかし、これらを使用したアプリというのはあまり見かけません。pyqtについてはライセンスの問題で多く使われていないと推察できますが、他2つも簡単なアプリにしか使用されないと感じます。
jsのelectron製ソフトなら多く見かけますが、この差はどこから生まれるのでしょうか?

質問2:
electron製のソフトでも、guiがシンプルなものが多いと思います。windows formなどと比較すると、electronやtkinterでは複雑なguiを作るのが難しいのでしょうか?

よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ForestSeo

2020/06/18 00:32 編集

まったくどうでも良いかもしれませんが、 DropboxがwxPython(PythonのGUI)を使っていた気がする。
YouheiSakurai

2020/06/18 03:49

どうでもいい話にのっかります。Windows環境のDropbox(99.4.501)を見てみましたけどPyQt5.QtGuiとかPyQt5.QtWebEngineを使ってるっぽいです。そしてそれ以前に私は、DropboxはRustに移ったものだと思ってましたが、まだ「コアとなるサービスの一つ」という段階らしいです。
blendegg

2020/06/18 04:00

pythonのguiの中ではwxpythonが一番おすすめなんでしょうか?
ForestSeo

2020/06/18 05:13 編集

僕はwxPythonは触ったことが少しあるくらいなんですが(ほぼ無い)、 Tkinterより手の込んだものが作るれるらしいです。 調べてみてください。
teamikl

2020/06/18 06:41

DropboxでwxPythonというのは私も聞いたことがありました、かなり昔の話ですが 情報元: https://www.publickey1.jp/blog/13/dropboxpythonpycon_apac_2013.html Guido氏(Pythonの作者)がGoogleからDropboxへ移籍した頃でしたね。 Tkinterは、自分の周りでは、ほぼ利用者はいなかったのですが、 Teratailでは意外と質問が多くて驚いてます。情報の少なさ故かも知れませんが… RasberryPi等の組込用途では使われてるのかな。
guest

回答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
YouheiSakurai

総合スコア6142

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

yymmt

総合スコア1615

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

blendegg

2020/06/18 04:00

pythonのguiの中から選ぶなら何がおすすめですか? pythonもそれほど習得できていないので、さらにjavascriptもとなると、大変かなと
yymmt

2020/06/18 11:45

ケースバイケースですが - 日本語の入出力を必要とするか(IMEに対応しているかどうか) - ビジネス利用を考えるかどうか ライセンス費用を考えなくて良いのであればPyQtをおすすめします。Designerが付いてきますのでGUI設計に注力できますし、Qtの開発母体がしっかりしておりサポート面でも安心できます。 個人の趣味であれば何でも良いとは思いますが、費用面を抑えつつカッコよく複雑なGUIをご所望ならkivyでしょうか。
guest

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

katsuko

総合スコア3538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

blendegg

2020/06/18 03:59

インストール時に自動的にpythonもインストールするような設定にできないのでしょうか?
katsuko

2020/06/18 13:25

一般的にPythonのパッケージのインストールはpipコマンドを使用しますが、pipコマンドが使えるということはすでにpythonがインストールされているということになりますので、…。 自分で一からインストーラを作ればできなくはないでしょうけど、そこまでするのであれば先に言ったとおりpyinstallerなどで実行ファイルにしてしまった方がまだ楽でしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問