投稿

8月, 2011の投稿を表示しています

PySide チュートリアル - helloworld から ユニットテストまで

ここ 2 ヶ月ほど PySide でお仕事してました。もともと PyQt で動いてたアプリケーションだったのですが、けっこう仕様変更が大きかったこともあり、どうせなので PySide で作り直してみることにしました。両フレームワークの差異は このページ にまとまっています ( id:doloopwhile さんが翻訳されています)。大きくは、 モジュール名が PyQt から PySide に PyQt の API は QString や QVariants 等 Qt が提供する型と、unicode 等 Python のデータ型の両方をサポートしていましたが、PySide では Python のデータ型のみをサポート 画像等のリソースファイルをバイナリに変換したりするツール類の名称がそれぞれ変更 pyuic4 -> pyside-uic pyrcc4 -> pyside-rcc4 pylupdate4 -> pyside-lupdate PySide への変更はそんなに問題ではありませんが、まだ開発中ということもあり、pyside-rcc4 にバグがあったり、 signal-slot が遅いということもあるようです。この辺りは今後に期待です。 ということで自分の復習 & メモと、PySide がちょっとでも普及すればいいなということで、PySide のチュートリアルを作ってみました。helloworld ということで、ボタンをおしたらテキストボックスに "Hello world" と表示するだけのなんの面白味もないウィジェットと、そのユニットテストを作ってみます。ソースは bitbucket に公開しました。 環境を整える インストールするもの Python Python for Windows extensions (Windows ユーザのみ) PySide 推奨 virtualenv - py2exe でフリージング (実行ファイル形式に変換) する際に余計なライブラリが含まれるのを防ぐため ウィジェットを表示してみる Python インタプリタから以下のように打つと、ダイアログを表示することができます。 import sys from

Python で Windows のプリンタスプールを削除する

Windows XP で印刷をキャンセルしたり、印刷キューに残っている印刷ジョブを削除したりする方法 (KB946737) のメモ import os import win32serviceutil # スプールファイルの保存先 spooled_dir = os.path.join( os.environ.get('SYSTEMROOT', r'C:\WINDOWS'), 'system32', 'spool', 'printers', ) win32serviceutil.StopService('spooler') for f in os.listdir(spooled_dir): os.remove(os.path.join(spooled_dir, f)) win32serviceutil.StartService('spooler') StopService の後もプロセスがしばらくファイルをつかんじゃって消せない場合もある