Windows11の教科書

ウィンドウズ11やスマホで困ったことを調べたブログ

【Visual Studio】PythonでIronPythonインストール・フォームアプリケーション

Visual Studio 2019でPythonがありますが、基本的にはコンソールアプリです。

ただしIronPythonやTkinterというものを使うと、PythonでGUIを使ったアプリを簡単に作れるようになります。

IronPythonを使ってウィンドウを作る

iron

Visual StudioでPythonプロジェクトを作ろうかなと思ったら「IronPython Windowsフォームアプリケーション」というのがありました。

 

ググってみると、IronPythonとはドットネットフレームワークをPythonで使えるようにしたもの...っぽいです。

IronPython - Wikipedia

 

Visual StudioでもPythonが使えますが基本的にはコンソールアプリです。GUIを組んだりするならIronPythonという選択肢もありかもしれません。

 

作成

とりあえずどんなものかみてみたいので、プロジェクトを新規に作ってみます。

f:id:apicode:20200728163552p:plain

 

すると初期状態でこんなコードがつくられます。

f:id:apicode:20200728163555p:plain

 

しかしそのまま「開始」しようとすると「デバッガーの起動に失敗しました」として正しく構成されていないと出てしまいます。

f:id:apicode:20200728163557p:plain

 

どうやら別途IronPythonを入れないといけないようです。

以下よりIronPython-2.7.10.msiをダウンロードしてインストールします。

https://github.com/IronLanguages/ironpython2/releases/

f:id:apicode:20200728163559p:plain

 

設定

「プロジェクト>(ファイル名)のプロパティ」で「全般」タブの「インタープリター」のところで「IronPython2.7(32bit)」が選べるようになっているはずなので選択します。

f:id:apicode:20200728164209p:plain

 

これで「開始」を実行すると、無事に何もないウィンドウがつくられました。

f:id:apicode:20200728164211p:plain

 

ボタンを表示

プログラムソースの下のほうにフォームを作って実行する箇所があります。

form = MyForm()

Application.Run(form)

 

 

そこで、フォームができた後、ボタンを作ってフォームに登録するように書き換えてみます。

form = MyForm()

b1 = Button()
form.Controls.Add(b1)

Application.Run(form)

 

これで実行すると確かにカラのボタンがつくられました。

f:id:apicode:20200728164750p:plain

 

 

 

Tkinterを使ってウィンドウを作る

Hello GUI Zero

Visual StudioでのPythonは、C#やVisual Basicを作るときのようにフォームを作ってボタンを配置するようなデザイナー機能はありません。

 

そのため、ライブラリをつかってウィンドウをプログラムのほうから記述して表示させる必要があります。

 

インストール

PythonのGUIで代表的なものといえば、Tkinterです。

ライブラリをインポートすれば、あとはボタンなどを簡単に追加することができます。 

 

通常Visual StudioのPythonでライブラリを使うには「pip install」が利用できます。

 

 

しかし「pip install tkinter」を実行してみたのですが、「みつかりません」となってしまいました。

f:id:apicode:20200307113917p:plain

 

 

で、いろいろぐぐって調べてみると、tkinterはすでにあってパスを追加すれば利用できるようでした。

参考:Visual StudioでPython(パイソン)を使ってみる2 | 孤独なコンピュータ

 

プロジェクトにある「検索パス」という項目で右クリックメニューから「フォルダーを検索パスに追加」を実行します。

f:id:apicode:20200307114044p:plain

 

でPythonのパスを追加します。

うちの場合は「C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64」です。

f:id:apicode:20200307113834p:plain

 

プログラム

あとはPYにプログラムを書きます。

import tkinter

root = tkinter.Tk()
root.mainloop()

 

あとは実行します。

すると先にコンソールが起動してそれからTKinterを使ったウィンドウが無事表示されました。

f:id:apicode:20200307114237p:plain

 

すぐに使える場合もあるかもしれませんが、利用できない場合は上記のように検索パスを追加しておけば大丈夫だと思います。

 

 

結局どっち?

C#などをVisual Studioで使う場合、ボタンなどをフォームにビジュアルに貼り付けられます。

しかしIronPythonでは結局プログラムからボタンの追加などをかかないといけないようです。

 

PythonにはTkinterのようなウィンドウやボタン表示ライブラリがあります。使い方は大体一緒ですので、どちらかの方法でウィンドウやGUIアプリを作ればいいのではないかと思います。

 

汎用性でいえばTkinterのほうがいいです。そっちを覚えれば、ラズパイなどでも同じように使えます。

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

利用規約・プライバシーポリシー |〇問い合わせ