ラベル Python の投稿を表示しています。 すべての投稿を表示
ラベル Python の投稿を表示しています。 すべての投稿を表示
2017年2月14日火曜日

ZetCodeのPyQt5チュートリアル目次

PyQt5をやってみよう! とおもって色々と探してみました。そしてついにいい資料にであえたので、そのメモと感動を記録しておきます! っておおげさ(笑)

PyQt5チュートリアルの資料について

ZetCodeのPyQt5チュートリアルが素晴らしかったので、これを使って学習しました。この記事ではPyQt5の初学者を対象に、PyQt5でのプログラミングを各部品(ウィジェットといいます)ごとに一つ一つ実際に動くコードを掲載、説明しています。説明も最低限に絞られていて、とても読みやすい文章です。PyQt5をやってみようという方にはうってつけのコンテンツです。写経するにもコードもシンプルで、写経にも最適です。

翻訳があるかな、と思って探したのですが見つからなかったので、目次だけでもと思って日本語にしてみました。ついでに各章のセクションと、その学習対象のPyQt5オブジェクトもまとめておきました。

なおZetCodeでは他にも色々とチュートリアルが掲載されているので、これからもお世話になりそうです。ざっと読んで概要を把握するにも便利なのに、なんであまり有名じゃないんだろう…

本文の英語はGoogle Dictionaryなどのブラウザの辞書ツールを使えば、意外と簡単に読めるシンプルな文章でした。

対象バージョン

項目 バージョン
言語 Python 3.x
GUI FW Qt 5
Pythonバインディング PyQt5

PyQt5チュートリアル 目次

タイトル 日本語 主要なPyQt5オブジェクト
Prelude まえがき
1.Introduction to PyQt5 1.PyQtの紹介
– About PyQt5 – PyQt5とは
– PyQt4 and PyQt5 differences – PyQt4とPyQt5の違い
– Python – Pythonとは
2.First programs 2.初めてのプログラム
– Simple example – シンプルな例 QApplication, QWidget
– An application icon – アプリケーションのアイコン QIcon
– Showing a tooltip – ツールチップの表示 QToolTip
– Closing a window – ウィンドウを閉じる QCoreApplication
– Message Box – メッセージボックス QMessageBox
– Centering window on the screen – ウィンドウのセンタリング
(対デスクトップ)
QDesktopWidget
3.Menus and toolbars 3.メニューとツールバー
– Main Window – メインウィンドウ QMainWindow
– Statusbar – ステータスバー QMainWindow
– Menubar – メニューバー QAction, qApp
– Toolbar – ツールバー QAction, qApp
– Putting it together – 全部一緒にのせてみる QTextEdit
4.Layout management 4.レイアウト管理
– Absolute positioning – 絶対位置指定 QLabel
– Box layout – ボックスレイアウト QHBoxLayout, QVBoxLayout
– QGridLayout – グリッドレイアウト QGridLayout
– Review example – レビューアプリケーション QLineEdit
5.Events and signals 5.イベントとシグナル
– Events – イベント -
– Signals & slots – シグナルとスロット QLCDNumber, QSlider
– Reimplementing event handler – イベントハンドラの再実装 Qt
– Event sender – イベント発行者 (QtObject.sender())
– Emitting signals – シグナルの発火 pyqtSignal, QObject
6.Dialogs 6.ダイアログ
– QInputDialog – 入力用ダイアログ QInputDialog
– QColorDialog – 色選択ダイアログ QFrame, QColorDialog
– QFontDialog – フォント選択ダイアログ QFontDialog, QSizePolicy
– QFileDialog – ファイル選択ダイアログ QFileDialog
7.Widgets 7.ウィジェット
– QCheckBox – チェックボックス QCheckBox
– Toggle button – トグルボタン QColor
– QSlider – スライダー QSlider, QPixmap
– QProgressBar – プログレスバー QProgressBar, QBasicTimer
– QCalendarWidget – カレンダー QCalendarWidget, QDate
8.Widgets II 8.ウィジェット2
– QPixmap – 画像を扱うQPixmap QPixmap
– QLineEdit – ラインエディタ QLineEdit
– QSplitter – スプリッター QFrame, QSplitter,
QStyleFactory ←なくても動く
– QComboBox – コンボボックス QComboBox
9.Drag and drop 9.ドラッグ&ドロップ
– Simple drag and drop – 簡単なドラッグ&ドロップ (QWidget.setAcceptDrops()
– Drag & drop a button widget – ボタンをドラッグ&ドロップ QDrag, QMimeData
10.Painting 10.グラフィックの描画
– Drawing text – テキストの描画 QPainter, QColor, QFont
– Drawing points – 点の描画 QPainter, QColor, QPen
– Colours – 色 QPainter, QColor, QBrush
– QPen – ペン QPainter, QColor, QPen
– QBrush – ブラシ QPainter, QBrush
11.Custom widgets 11.カスタムウィジェットの作成
– Burning widget – CD作成ソフトの画面 (新出オブジェクトなし)
12.The Tetris game 12.テトリス
– Tetris – テトリス (新出オブジェクトなし)

参考サイト

2017年2月7日火曜日

Python/Qtの開発環境をつくってみる (2) PyCharm with Anaconda編

Pythonを開発する環境を調べていたら、AnacondaにSpyderっていうのが入ってるのがわかったんですが、PyCharmというのも優れものだって聞いたので、試してみたくなりました。

PyCharmってなに?

PyCharmはPythonの開発環境のひとつです。コード補完やデバッグなど、開発するのに便利な機能が満載、だそうです。詳しくはリンク先の公式を見てください。(ぉぃ

無償のCommunity版と有償のProfessional版があります。個人で商用利用でなければ無償のCommnity版を使うことができます。今回は無償のCommunity版を使います。

Javaで書かれていて実行にはJREが必要です。

最新版は?

2017年2月7日現在のリリース状況は以下のようになっていました。

項目 安定版 アーリーアクセス版
バージョン 2016.3.2 ? 2017.1
ビルド 163.10153.50 171.2822.19
リリース日 2016.12.30 2017.2.2

アーリーアクセス版の誘惑がとっても強いんですが、安定版のリリース日がそんなに古くないから、今回は安定版を採用します。

プラットフォームは?

私の環境は以下のとおりです。そんなに変わったところはありません。

OS: Windows 10 Pro 64bit
Python: Anaconda 4.3.0.1 の Python 3.6.0
Java: Java(TM) SE Runtime Environment (build 1.8.0_121-b13)

導入してみよう

ダウンロードページからダウンロードして、実行するだけでした。なんて簡単! これ以上書くことがないくらい、簡単です。詳しくみたい人はこの記事の下の方にある付録か、参考サイトにあるインストールについての記事を見てください。

プラグインも入れてみよう

QtDesignerというQtのGUIビルダーがあります。このツールでGUIを作ったらPyCharmと自動的に連携させることができるプラグインがあります。最強のPySide/PyQt開発環境もPyCharmである - Qiitaを参考にして導入しておきましょう。下記2点、便利そうです。

  • File Watcher
  • ファイルテンプレートの追加

AnacondaのPythonを使うように設定しよう

PyCharmで新規にプロジェクトを作成するときに、実行するPythonのパスを指定するだけです。すると関連するライブラリががっつりPyCharmの画面に出てきます。

まとめ

あっさり動いてしまって、なんだか記事にするのが申し訳ないくらいです。これからQtの勉強をしていきましょう!

参考サイト

いつも勉強させていただいています。感謝!

付録 インストールの流れ (画面あり)

以降、インストールしたときの履歴を画面をキャプチャして置いたので、メモ代わりにあげておきます。

Python/Qtの開発環境をつくってみる (1) Anaconda編

Pythonを開発する環境を作ってみたいと思います。実はすでにAnacondaを導入済みなんですが、実はなんだか変なんです。なのでアンインストールして再度導入してみたいと思います。

何をしたいの?

Pythonを使ってGUIアプリを作りたいです。他にも最近流行りの機械学習とかもサンプルコードでもいいので動かしてみたいです。これが一番やりたいことです。道は遠いけど…

どんなツールがあるの?

色々と調べたら結構いろんな種類のPythonがあるみたい。

  • Pythonのバリエーション

  • ディストリビューション

    • Anaconda
      Pythonとデータサイエンスのためのライブラリ、開発環境をセットにしたもの。Qt、Cythonも一緒に入れてくれる。他にも開発環境のSpyder、Jupter Notebook、環境整備のAnaconda Navigatorと盛りだくさん。

プラットフォームは?

Windows 10 Pro 64bit です。

今は何が不満なの?

Anacondaをすでにインストールしているんですが、どうも挙動がおかしいんです。パッケージをアップデートしようとすると固まっちゃうとか、Jupiter NoteBookがちゃんと動かなかったりとか。どうもC:\Program FilesにインストールしたのがUACの対象になってまずかったみたい。なので今度はC:\にインストールしてみたいと思います。
デフォルトのインストール先なのになぁ。解決してほしい!

アンインストールしてみよう

Windowsの「プログラムと機能」からAnacondaを選んでアンインストールするだけです。導入されたファイル数が山ほどあるので、結構時間はかかります。とはいってもお洗濯物干す時間くらいかな?

あれ? Gitが環境に残ってる… てっきりAnacondaがGitをインストールしていたと思ったんだけど、違ったみたいです。単独で導入した覚えはないし、いったい何をインストールしたときに一緒に入ったんだろう…

最新版を導入してみよう

アンインストールが終わったら新しいAnacondaをダウンロードしてきてインストールします。前はPython3.5ベースだったんですが、2017年2月7日現在の最新はPython3.6ベースになっているのが気になります。Python自体は最新ですが、他のライブラリと一緒にちゃんと動いてくれるかな? これから使っていくとおいおいわかると思います。

ダウンロードがちゃんとできない時がたまにあって、「これ、実行できないよ?」ってWindows 10に言われることがありますが、そんなときはダウンロードしたファイルを削除してもう一回ダウンロードしてみましょう。

ダウンロードが終わったらインストーラをダブルクリックして実行します。ここで私はノートン先生に、「そのファイル知らないよ! ちゃんと確認してね!」と言われてしまいました。最新版だったため、まだノートン先生にレピュテーションが伝わっていなかったようです。確認して実行すると、インストールが始まりました。ノートン先生に教えてあげるのっていいですね。(何が?

なお付録にインストールの画面を貼っておきます。

動いた?

インストールが終わったらブラウザが起動してAnaconda Cloudの紹介ページが表示されます。私は前にアカウントをとってログインしていたので、ログイン後のページが表示されました。

以下はスタートメニューに登録されるアプリケーションの起動確認結果です。

アプリケーション 動作結果 備考
Anaconda Prompt *1
IPython *2
Spyder
Jupiter Notebook Anaconda Navigatorから起動。
Windowsのスタートメニューからでは起動せず
Anaconda Navigator
Anaconda Cloud
Jupiter QtConsole

* (*1) Anaconda Promptの実行結果

(C:\Anaconda3) C:\Users\tsukiyomi>python
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
  • (*2) IPythonの実行結果
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]:

無事使える環境ができました! Anacondaだと本当にお手軽にPythonの実行環境を導入できますね。ただAnacondaにもパッケージ管理の面で課題はあるようです。留意しておきます。

参考サイト

  • Anaconda
    Continuum社開発のPython統合IDE環境。入門Python3でも推奨されていたし、深層学習用のライブラリも満載。PyQtもパッケージとして含まれていて、らくちんインストーラ。
    他にもJupiter Notebookという、実行結果をサクッとウェブにあげれるアプリや、パッケージ管理ができるAnaconda Navigator、なにやらクラウドを使ってごにょごにょするAnaconda Cloudとか、いま最強のPython開発環境と言われているらしいです。

  • Anaconda で Python 環境をインストールする - Qiita (2017-02-04)
    Anacondaの環境構築に関する話題。ここだけみててAnacondaの環境作れる気がします。またAnacondaでcondaを使って複数バージョンのPython実行環境を構築する方法も書かれています。必見。

  • Anaconda ライブラリインストールエラー - Python (Windows) 備忘録 (2016-12-24)
    最近Anacondaを触っていたらどうも調子が悪いんです。パッケージをアップデートしたり、JupiterNotebooksを使おうとしたらプロセスが動かなかったり。どうもWindows環境ではUACの影響下にあるProgram Files配下にインストールすると異常が起きる模様。すなおにC:\Anaconda3にインストールし直そうと思います。
    デフォルトのインストール先なのになぁ。

  • Jupyter Notebook を使ってみよう – Python でデータサイエンス (2016-05-??)
    Jupyter Notebookの紹介記事。概要をつかむのに役立ちそう。

  • wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog (2017-02-02)
    Pythonのライブラリ導入方式にはpip、condaがあるのは知っていましたが、どのような違いがあるのか知りませんでした。この記事では開発経緯を含めて丁寧にわかりやすく示してくれています。勉強になりました。

付録 インストールの流れ (画面あり)

以降、インストールしたときの履歴を画面をキャプチャして置いたので、メモ代わりにあげておきます。

2017年2月4日土曜日

QtをPythonで! 何から始めたらいいのかな…

前から興味のあったデスクトップアプリ開発のため、Qtの学習をしてみたいと思います。言語は最近はじめたPython。食わず嫌いだったんだけど、思い立って入門Python3っていう入門書を買って読んでみたら、わりと初心者に優しかったんですね。今だと勢いもあるし、ここはひとつPython / Qt / PyQtでいってみたいと思います。

でもいままでGUIアプリを書いたことがないわたし、何から始めたらいいか全然検討もつきません。調べた結果をこの記事にまとめました。情報公開してくださってる方に感謝。

いっぱい勉強のネタがあるなぁ… がんばろっ! (^O^)/

これから使うPythonについて

PythonAnaconda 4.3.0でインストールし、Python 3.6を使用する予定です。Anacondaというのは、Pythonの実行環境にサードパーティのライブラリや、開発環境を全部入りにしたインストーラです。

Qtってなに?

Qtはグラフィックスを扱うライブラリ群です。マルチプラットフォームで、一回書いたプログラムをUnix/Linux/Windows/Macといろんなプラットフォームで動かすことができるようになる、夢のようなライブラリ群。 夢かも知れない…

ほかにもwxPython、TkInter、Kivyなどのグラフィックを扱うライブラリがありますが、それらはまた別の機会に。

開発者

現在はThe Qt Companyで開発されているそうです。私が知っているのはTrollTechという会社が開発していたってことくらい。その頃に一回Qtの本買った気がします。読んだはずだけど、忘れちゃいました。 ( > <) たしかUnixやLinuxのX Windowのウィンドウマネージャのプラットフォームとして使われていたと思います。

ライセンス

Qtのライセンスはオープンソースですが、ライセンスが意外と厳しくLGPLv3、場合によってGPL、商用ライセンスとマルチライセンス形態で、商売するなら買わないといけません。

商用ライセンスは結構お高いんでしょう? って言っても安くはなりません。個人が使うのであれば、はじめは月$99くらい、その後は大体月$300くらい? 高いです! 永続ライセンスはなんとお見積! ご連絡ください! となっています。なお、販売代理店が日本にもありますので、商売になりそうなら相談したらいいかもしれません。

わたしの場合、まずは趣味だしGPLで使うことにします…

PythonからはPyQtやPySideというPythonのライブラリからQtを呼び出して使うことになります。PyQtとPySideの違いはライセンスのようですが、使えるPythonのバージョンなどの関係から今回はPyQtを使うことにします。

入手方法

Download Qt for Application Developmentで、”Get your open source package”をクリックするとダウンロードページに移動します。自分の環境にあったインストーラをダウンロードすることもできるし、”View All Download”から好きなインストーラをダウンロードすることもできます。

AnacondaにはQtが含まれているので、ダウンロードする必要はありません

バージョン

2017年2月3日現在の最新版は公式サイトで配布されているものは Qt 5.8.0 です。
Anaconda (4.3.0) では Qt 5.6.2 です。

参考情報

PyQtってなに?

PyQtはPythonからQtの機能を使うためのPythonライブラリです。これとは別にPySideというライブラリもあります。違いはやはりライセンス。PyQtのライセンスが厳しく、これを嫌った人たちがオルタネイティブとしてPySideを開発しているそうです。

開発者

Riverbankという会社が開発しています。

ライセンス

GPLv3か商用のデュアルライセンスで、LGPLを認めていません。Qtより厳しいです。商用の方は£350 (GBP)、今の為替レートで約5万円ほど。まぁQtに比べたらお安いですね。なんだか高額商品の販売商法のような気がしないでもありません。いえ、決してそんなことはなく。

なお厳しいライセンスは飯を食っていくため! と表明しています。こういう開き直り正直さっていいですね。

入手方法

Riverbank | Software | PyQt | PyQt5 Downloadからダウンロードします。
Anacondaをインストールするとすでに入っているので、Anacondaを使う人はだいぶ楽できますね。

バージョン

2017年2月3日時点の最新版はPyQt5 5.7.1です。
Anaconda (4.3.0)ではPyQt 5.6.0です。少し古いですね。Anacondaでアップデートできそうですが、いつやろうか悩みます。

参考情報

次は何しようかな…

まずは環境整えます。そのあとPyQtについて本格的に学習していきたいと思います。今のAnaconda環境、なんだか変なので再インストールして導入する予定です。

参考サイト

  • 5 Top Python GUI Frameworks for 2015 - Dice Insights (2016-11-22)
    この記事、タイトルがいい! 毎年使いまわしできる! こんなネタの組み方、思いつかなかった… なんだか今年の漢字っぽくってちょっとうけました。で、2017年のがあるかと思ってぐぐったら…Web Frameworkだったよ… はやとちり…