bravo's blog

マルチプラットフォームGUIツールキット+軽量言語であるPyQtのプログラミングとか | Pythonのお仕事も募集してます(twitter @bravotanからDMできます)

端末内のEmacsとIPythonをなんとか綺麗に連携させる

IPythonを端末内のEmacsでも綺麗に見えるようにしたい 端末内のEmacsでPython Mode https://launchpad.net/python-mode を使っていて、IPythonと連携しようとしても素のままだとエスケープシーケンスがこぼれて綺麗に見えないので、.emacsなりで以下のように…

PyQtでの2Dグラフィックス その1 (QWidgetに直接描画する)

PyQtでの描画処理について PyQtでグラフィックス処理をするには、主に以下のような方法があります。 QWidgetの描画処理をオーバーライド:単純なグラフィック描画や自作のウィジェットとして描画する QGraphicsItemの使用:Qtに備わった複数のグラフィックを…

PyQtクラスを追加しやすくするEmacs Lisp

Emacs LispでPyQtのクラスを作る部分を省力化 PyQtプログラミングをやっていると、クラスを追加するのに毎回同じような記述をするのが非常にかったるくなってきます。普通にコピペでも良いのですが、以下のようなEmacs lispでもう少しEmacsらしく使えるよう…

PyQtでのMVC その5 (データ編集のつづき)

編集機能の変更サンプル 前回のサンプルでは編集用のエディタが素のQTextEditでしたが、 整合性の観点から、QComboBoxを使ったプルダウンで選択する方式に変えておきます。 import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtW…

PyQtでのMVC その4 (データ編集)

データの編集ができるようにする これまでCRUD処理の、Read、Delete、Createを作りました。 残りのUであるUpdate機能を追加します。 まず、このパートではデータのインデックスという言葉が頻出しますが、具体的にはQModelIndexのインスタンスを指します。 …

PyQtでのMVC その3 (データ追加・ドックウインドウ)

データを追加をする機能を追加する その2では削除機能を追加しましたので、次はデータを追加する機能を追加します。 要領はデータの削除と同じ データを追加するためには、以下の手続が必要になります。 データを追加するためのインタフェースを用意する 1.…

PyQtでのMVC その2 (データ削除・ツールバー)

QTreeViewでの表示 その1ではQTableViewを使った表示をしました。このViewをQTreeViewに変えてみます。 QTreeViewは木構造のデータモデルを表示するのに適しますが、RDBのようなレコードを持つ構造にも適しています。 QTreeViewでは、データがノード単位で選…

PyQtでのMVC その1 (データ表示)

大量のデータをまとめるために 多くのデータを扱うアプリケーションでは、 使い手がどのようなデータが存在しているかを理解しやすくする仕組みを提供しています。 例に挙げる以下のような公共のサービスであっても、元のデータに対するタイトルや内容、 説…

(OSX) PyQtでDockアイコンへのドロップを実装する その2

OSX用に仕上げる その1で作ったプログラムを、より実用的なアプリケーションらしく使えるようにするには、 OSXの仕様に合わせる必要があります。仕様にあわせたファイル郡のことをBundle(バンドル)といいます。 身近なものでは、アプリケーションフォルダの…

(OSX) PyQtでDockアイコンへのドロップを実装する その1

Dockアイコンへのドラッグアンドドロップについて 利点としては「PyQtでドラッグアンドドロップを実装する」で書きましたが、 2番目の「アプリケーションの起動手続きとして使える」ことにほぼ特化していると言えます。 ファイルやURLといった情報を直感的か…

PyQtでドラッグアンドドロップを実装する

ドラッグアンドドロップの利点 ファイルやURLといった情報を直感的かつキーボードを使わないで入力できる アプリケーションの起動手続きとして使える ソフトによって使われ方はさまざま 今回はファイルやURLのドラッグアンドドロップについて扱います。 PyQt…

PR