そのときに必要になるので、イベントハンドリングしたいコンポーネントには名前をつけるようにしましょう。, 後ほど、ファイルのパスを取得する必要があるので、sg.FileBrowse()には名前をつけておきます。, ■ 2つめのコンポーネント(テキストボックス) 文字数が少し多いので、2行のテキストで表示するためsize=("横幅","縦幅")の"縦幅"に2を指定します。, sg.Text('複数ページのときは\n3-10 のように指定してください', size=(30, 2)), ■ 2つめのコンポーネント(プルダウンメニュー) PythonのGUIライブラリ13個を比較 . 例えば、「読み取り」ボタンには'read'という名前をつけているので、このボタンが押された場合、eventには'read'という名前が入っています。, valuesには各コンポーネントが持っている値が入っていて、これも各コンポーネントにkey='名前'で与えた名前を指定して取り出すことができます。 Help us understand the problem. ここでは'DarkAmber'というテーマを設定しましたが、他にも140種類ものデザインテーマが用意されています。, ここがGUIの肝になりますが、ウィンドウに配置する部品(コンポーネント)とレイアウトを設定していきます。, というように各行に配置したい部品をカンマで区切って設定します。 ウィンドウのタイトルは「PDFの表を抜き出すツール」とでもしておきましょう。, window.read()の戻り値であるeventには、各コンポーネントにkey='名前'で与えた名前が入ります。 フレームを入れ子構造にしたコードは以下の通りです。, フレームその2(子フレーム)を作成するとき、上記コード中で tkinter.Frame(frame1) と記述しました。このtkinter.Frame() の第一引数には、親フレームを指定することが出来ます。 その場合は、sg.Text('表示したいテキスト', size=("横幅","縦幅"))という形で指定します。, ■ 2つめと3つめのコンポーネント(ファイルブラウザボタン) Qt(キュート)という「C++」言語で書かれたGUIフレームワークがあり、「PyQt」は「Qt」のPythonバージョンです。 Tkinter. PySimpleGuiは誰でも簡単にGUIを実装できるのが特徴で、PySimpleGui公式ドキュメントによると、PySimpleGuiはすぐに習得でき、コード量も他のGUIライブラリ(Tkinter、Qt、WxPythonなど)の1/2~1/10程度で済むとのこと。, コードは大きく5つのステップで構成されています。 標準ライブラリのため外部のライブラリを導入する必要がなく、Pythonの環境構築を行った時点で利用することができることが特徴です。シンプルな文法と起動の速さが評価されており、Pythonにおけるもっとも基本的なGUIライブラリとしての立ち位置を築いています。, 近年、PythonのGUIライブラリの中でもっとも人気が高いものが「Kivy」です。 tkinte.Label()の第一引数にはrootを指定しており、キーワード引数textには文字列を指定しています。 このコンポーネントにも名前をつけておきます。, ■ 1つめと2つめのコンポーネント(ボタン) 3 min read. テキストはsg.Text("表示したいテキスト")で配置します。, ■ 1つめのコンポーネント(テキスト) Cを主に使っています田舎暮らしのプログラマーです。 >>> quit() OSバージョンを調べます。 $ uname -a Linux pi3 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l GNU/Linux $ lsb_release -a No LSB modules are available. 下記のpipコマンドでさくっとインストールしましょう。, PySimpleGUIをインポートします。このときsgという別名をつけるのが標準的なので、本記事でもその慣例に従います。, sg.theme()でGUIのデザインを設定します。 Этот язык был создан Гвидо ван Россумом и впервые выпущен в 1991 году. PythonだってGUIを作りたい. 特にITスキルの高くない人にとっては、CUIは拒絶反応を起こすこともあります。, そんな場合、PySimpleGuiを使ってみてはいかがでしょうか? フレーム上に要素を二次元的に配置する(行と列を指定可能、指定しない場合は縦1列横1行ごとに要素を配置)。, このように、GUIへの要素の表示方法にも複数の方法が用意されています。 このコンポーネントにも名前をつけておきます。, ■ 3つめのコンポーネント(テキスト) このとき、第1引数としてウィンドウタイトルを指定できます。, イベントループの中でイベントの発生を待ちます。 興味のある方はぜひ調べてみてください。, 今回は、PythonでGUIアプリケーションを作る時のおすすめのライブラリの紹介と、そのうちのひとつであるTkinterを使用したGUIアプリのコードについての解説を行いました。 ボタンはsg.Button('ボタンに表示したいテキスト')で配置します。 これは「第一引数で指定したフレームに、キーワード引数textの文字列を作成する」という処理になっています。, フレームとはウィンドウの枠のことであり、上記コード中ではもっとも外側の枠となるウィンドウしか存在しませんが、これは入れ子上に作成・配置することができます。 sg.Text()で配置します。 ライブラリ(他の方が作ったプログラム)を活用してプログラミングをします。, こちらはPythonの標準ライブラリであり、追加のライブラリインストールが不要ですぐに始められます。, こちらは、Tkinterよりも少ないコードでプログラムを書くことができるため、 Tkinter is a toolkit that can form GUI with Python. Перевод статьи markdrozdov “13 Python GUI Libraries”. 詳しくは『【自動化】PDF内の表をPythonで抜き出す』をご覧ください。, まずどんなGUIにしたいのかデザインを決めましょう。 $ python Python 2.7.13 (default, Jan 19 2017, 14:48:08) [GCC 6.3.0 20170124] on linux2 Type "help", "copyright", "credits" or "license" for more information. Python. テキストは1行目と同じでsg.Text()で配置します。 GUIアプリを制作できると、Pythonで制作したツール等をプログラミング言語について詳しくない方などに簡単に共有できるようになります。 また、ここまでの解説ではラベルを配置するのみのコードを紹介しましたが、Tkinterではその他にもチェックボックスやテキストフォーム、ボタンやステータスエリアなどを配置することが出来ます。, さらに、配置したボタンのクリックイベントを検出して、その際に自分で作成した関数を実行することもできます。 前提・実現したいことPython3とtkinterを用いてGUIを作成しようとしたのですが、わからない点があったので質問させて頂きます。 やりたいこと①:「startボタン」と「stopボタン」の2つのボタンが配置されているメインウィンドウの作成②:「startボタン」を押すと、接続し 前回の記事 pySerialを使った顕微鏡用多波長LED光源の高速波長切り替えについて 前回は顕微鏡用多波長LED光源の制御方法について書きました。今回はPythonによるカメラ制御について書きたいと思います。顕微鏡といえば肉眼で接眼レンズをのぞき込むイメージがありますが、実はカメラで撮影する場合が多いです。バイオ分野の研究者の中には顕微鏡メーカー各社が配布しているソフトウェアや有償ソフトを購入し、使っている方もいらっしゃいます。Pythonは無償ですので手軽に始められます。また、 … GUI上に表示するためのメソッドは grid() と pack() の他に place() というメソッドも用意されており、これら表示メソッドごとの違いは次のようになっています。, pack() 「ボタンが押された」などのイベントが発生した場合、どのボタンが押されたのかを識別する必要がありますよね。 が出力されます。, このようにPython標準GUIライブラリTkinterを使うことで、GUIアプリを作成可能です。 window.read()でイベントを受信します。イベントを受信したら、イベントによって行うべき処理を選択して実行します。, 『【自動化】PDF内の表をPythonで抜き出す』の記事で紹介したコードを少し改変し、「PDFファイルの指定したページ内の表を抜き出してcsv化するプログラム」をGUI付きで作ってみます。, PDFファイルの指定したページ内の表をDataFrameで抜き出す部分は関数化しておきます。 私も大いに参考にさせていただきました。, 自称【自動化番長】。「これ、人間がやる作業じゃなくない…?」という単調&イライラする作業から人類を解放すべくあらゆる自動化を研究中です。. ウィンドウが立ち上がるコードは以下の通りです。, tkinter.TK()メソッドを呼び出した段階で、ウィンドウが作成され表示されます。 例えば、4行目のプルダウンメニュー('あり' or 'なし')の値はvalues['lattice']で取得できます。, なお、ここでのprint文の結果は6行目のコンポーネントであるsg.Output()のボックス内に表示されます。, 以上のコードを実行すると、下記のようなGUIが表示されます。ほぼデザイン案の通りにできていますね。, PySimpleGuiはその名の通りシンプルにGUIを書くことができるので、楽しみながらGUIを制作することができました。 本項では紹介したGUIライブラリの中でもっとも基本的なGUIライブラリ「Tkinter」を使った、実際にGUIアプリのコードを解説します。, まずGUIの骨組みとして、ウィンドウが立ち上がるだけのコードを書いてみましょう。 GUI上にボタンを配置して関数を実行するコードは次の通りです。, 上記コード中の tkinter.Button()メソッドで、ボタンの作成と関数の紐づけを行っています。 PythonでGUIを作るためにほとんどの人が必要なのがライブラリ。 ソフトウェアを作る際には、プログラムを1から書くことはほとんどなく、 ライブラリ(他の方が作ったプログラム)を活用してプログラミングをします。 特にpythonは、 ライブラリがとても沢山あります 。 GUIだけでも、ライブラリが複数あり、今回はその13 … それに対して、CUI「Character User Interface」と呼ばれるものがあり、これはあなたが普段プログラムを書く時に使っている、Macでいうターミナル、Windowsでいうコマンドプロントに相応します。 Why not register and get more from Qiita? 選択したファイルのパスはsg.Input()で配置したボックスに表示します。, 各コンポーネントには、そのコンポーネントを識別するための名前をkey='名前'という形で与えることができます。 ボタンを押されたときのイベントをハンドリングしたいので、これらにもkey='名前'で名前をつけておきます。, この行のコンポーネントは1つだけです。 What is going on with this article? ''' 今回は、Pythonを使ってGUIアプリケーションを作る時におすすめのライブラリをご紹介していきます。, GUIとは、「Graphical User Interface」のことで視覚的に操作することが出来るUIのことです。