PyQtクラスを追加しやすくするEmacs Lisp
Emacs LispでPyQtのクラスを作る部分を省力化
PyQtプログラミングをやっていると、クラスを追加するのに毎回同じような記述をするのが非常にかったるくなってきます。普通にコピペでも良いのですが、以下のようなEmacs lispでもう少しEmacsらしく使えるようにしてみました。
- .emacsに以下のコードを追記してEmacsを再起動などで.emacsをリロードします。
- py-modeの状態で
M-x pyqt-new-class
で呼び出すとミニバッファにNew Qt class:
と表示されますので、新しいクラスの名前を入力してEnterを押します。 - 次にミニバッファに
Base Qt class:
と表示されますので、直前に入力したクラスの親クラスを入力してEnterを押します。 - 追加したいクラスの
__init__()
まで含めたコードが入力されます。
この状態でも特に不自由はしてないのですが、インデント幅が固定だったりと改善の余地はあります。
.emacsに追記するコード
(add-hook 'py-mode-hook '(lambda () (defun pyqt-new-class (class-name base-class-name) (interactive "sNew Qt class: \nsBase Qt class: ") (insert (format "class %s(%s):\n def __init__(self, parent=None):\n super(%s, self).__init__(parent)\n" class-name base-class-name class-name))) ))
実行画面
関数を呼び出し
追加クラス名を入力
追加クラスの親クラス名を入力
このように入力されます。
- 作者: Mark Summerfield
- 出版社/メーカー: Prentice Hall
- 発売日: 2007/10/18
- メディア: Kindle版
- この商品を含むブログを見る