wxPython

 wxTimerの使い方

wxPythonでコードを書いていて、一定時間間隔で継続して行う処理の必要がでてきた。そのときは、タイマー機能を使うしかないのでは。Pythonのモジュールにはその機能があるらしい(http://www.python.jp/doc/2.4/lib/timer-objects.html)が、ここではwxTime…

MDI(Multiple Document Interface)の実装練習

Excelではメインのウィンドウが一つあり、複数のファイルを開くとそのウィンドウ内に開いたファイルの数だけ画面が作成される。このインターフェースをMDI(Multiple Document Interface)と言うらしい。 ExcelのMDI↓ Firefox等のウェブブラウザでは、開いた画…

PlateButtonを試してみる

ボタン上に、画像と文字列を同時に表示させる方法を検討する。 画像か文字列のどちらか一方を表示させるのは、これまでの方法(http://d.hatena.ne.jp/Megumi221/20100211)で可能であることが分かった。でも同時に表示させている例はすぐには見当たらない。 …

メニューに画像を貼る練習

メニューバーのプルダウンメニューが文字だけでは味気ない場合があるので、メニューに画像を貼ってみる。wxPythonデモのessaimenu.pyに例があったのでその通りに。昔作ったコードを修正してやってみる。 以下、ソースコード。 import wx class MainFrame(wx.…

ボタンに画像を貼る練習

GUIのボタンを作る場合、いつもボタン上に文字を表示するだけでは味気ないので、絵を表示したボタンを作ることにする。その練習。 いつもながら、wxPython Indexを参考にさせていただく。 今回は以下の節の内容を組み合わせる。 5.3.3 ビットマップボタン(wx…

GUIアプリケーションの日本語表示と英語表示を切り替える

GUIアプリケーション上で、表示されている文字の表記を日本語と英語、どちらにも切り替えられる方法を考えてみた。例えば過去に作成した、郵便番号から住所を検索するコードの中では以下のようにして日本語表示のアプリケーションにしている。 ...(コードの…

バージョンの確認方法

今日知った、wxPythonのバージョン確認方法。 >>> import wx >>> wx.VERSION これだけ。 実行例。 2.8.10.1らしい。

Windowsのプログラムを起動する

wxPythonで作成したGUI画面から、windowsのプログラムを選択して起動するテスト。 popen2モジュールを使って昔、同様のことをしていたので思い出しつつ、ちゃんと動くかやってみる。GUI画面はやっつけで下のようにしてみた。 「選択」ボタンを押すとファイル…

Aqua風ボタンにしてみる

しばらくぶりにwxPythonのデモを見たら、結構機能が増えていることに気付く。電子掲示版に見られるように、文字列を横に流して表示すること(Ticker)も普通にできるようになっていた。どう実装するのか悩んだのが遠い昔のようだ。1年前ぐらいか?もしかしたら…

自動的に連番ファイル名を付ける(Python版)

引き続き、『日経ソフトウェア2009年12月号』の特別付録『簡単10分プログラミングレシピ』の中のプログラムをpythonで書く。もう2010年1月号が売り出されているはずなので、いつまでも12月号を眺めているわけにはいかないなー、ということでそろそろこのリハ…

郵便番号から住所検索(Python版)

ここ2週間ほど、平日は毎日12時間平均で仕事のデバッグをやっていたため、かなり心身が疲れきってしまった。ある変数の値がどこでおかしくなるかを確認するために、ひたすらコードの中でwriteしていった。 以前『デバッグが256倍速くなるテクニック』とかい…

Amazon APIを使う (2)

ほとんどできた。 今回のポイントは 検索キーワードを日本語でも入力できるようにするためのURLエンコード⇒urllib.quote(str(入力文字列))で解決。 オブジェクトをそのまま外部ファイルの保存するためにシリアライズ化⇒pickle.dumpする。 XMLファイルのパー…

PdfMergerの修正

PyPDFを使って実装した、pdfファイルをマージするツールPdfMerger を更新した。 更新 Quitメニューを付けた マージしたファイルの保存先を指定できるようにした アイコンを付けた 機能としてはファイルをマージするのみだが、500ページぐらいでも 数秒で作成…

選択したディレクトリ内のファイルをアルファベットごとに分類して選びやすくするツール(2)

たいしたことないツールだが完成した。自分にとっては有用なものだと思う。py2exeでパッケージ化までやってみた。 今回おこなったこと wxComboBoxでアルファベットごとのファイル一覧が出るようにした。 一覧からファイルを選択して開けるようにした。 終了…

選択したディレクトリ内のファイルをアルファベットごとに分類して選びやすくするツール(1)

現在、一つのディレクトリ内にソースコードがすべて保存されている状態なのだが、ファイル数が膨大なので、explorerで全体を眺めてもどこにどれがあるのやら、ちょっと探しにくい。そこで、指定したディレクトリ内のファイルを(多少とも)簡単に選択して開…

British単位系からSI系への換算ツール(3)

一応すべて実装した。このソフトでできることは次の通り(のはず)。 British単位系での数値を入力する (物理)量を選択する(選択できる量は図1の通り) 「換算」ボタンを押す 換算された値がSI単位系で表示される 図1:物理量の選択 適当に選んで実行し…

British単位系からSI系への換算ツール(2)

雛形だけ作った(下の写真)。このソフトでできることは次の通り(になる予定)。 British単位系での数値を入力する (物理)量を選択する 「換算」ボタンを押す 換算された値がSI単位系で表示される 日本のほとんどの人にとっては使う機会はないだろうな。…

 ロジスティック写像をプロットする(5)

今回の改良点 matplotlibで描いた絵をファイルに保存して貼り付けるのではなく直接wxで使うように変更。 グラフ描画をthreadモジュールで実行するようにする。 改良の結果... グラフ描画が高速になった(ような気がする)。 安定に動作するようになった。sto…

ロジスティック写像をプロットする(4)

修正した点 表示される画像の大きさを調整。50dpiでsavefigすると、400x300の大きさのファイルができたので、bmp = wx.EmptyBitmap(400,300)とした。 グラフはn=0から常に表示。 結果の図。 問題点 ストップさせようとすると固まる。 ここまでのソース。 imp…

 ロジスティック写像をプロットする(3)

続きをコーディングする。 根本的なことだが、プロットされる値がおかしかったので修正した。 修正の結果、表示される図がちゃんと右から左へ流れるように見えるようになる。 解決するべき問題点 フレーム内の図の表示位置を調整 グラフの横軸の範囲の指定の…

ロジスティック写像をプロットする(2)

コードの続きを書いていく。 Matplotlibの使い方で忘れていることがいくつもあるので、基本的なことから確認していく。arangeとか、忘れていた。図が描けるところまでできた。実行すると、 となった。 修正するべき点 更新された図の位置がおかしい。 ここま…

ロジスティック写像をプロットする

カオスの例として、ロジスティック写像がよく取り上げられる。 ロジスティック写像の式は単純だ。この式を解いたときの、Xnの変化を図示したい。例えばn=100までのXnを 求めると下図のようになる。この図を描くアプリケーションを作成する。 仕様 定数aと初…

クラックの練習(1)

解析魔法少女 美咲ちゃん マジカル・オープン!の4章でやっていることを再現しようと、自分でテスト用プログラムを作成した。パスワードを入力する欄があり、そこに文字列を入力するとダイアログが表示されるという簡単なプログラムだ。パスワードが正しいと…

シーザー暗号の実装(2)

昨日の続き。メインの処理は書いたので、次にGUI部分を作成した。 アプリケーションの説明 平文を入力し暗号化キーを指定すると、シーザー暗号化された暗号文を出力する。 使い方(暗号化) ソースファイルCaesar.pyをダブルクリックしてGUIを起動(起動画面…

モンキーハンティングのシミュレータ(2)

昨日のVPythonを使ったモンキーハンティングのコードを拡張して、GUI画面でパラメータの設定ができるようにした。いつものことながらwxPythonを使用。ちょっとしたモンキーハンティングのシミュレーションソフトになった。使用例を図1に示す。パラメータ設…

pdfファイルをマージするアプリケーション(3)

昨日のコードにあったバグ 選択したファイルのパスを考えていないため、異なるディレクトリのファイルを選ぶと動かない ファイルの出力場所を考慮していなかったので、出力先が不定 修正点 ファイルを選択したらdlg.GetPath()でファイルパスを得る 起動ディ…

pdfファイルをマージするアプリケーション(2)

pdfファイルの取り扱いは、ライブラリPyPdfを使う。それをwxPythonでラップした。 必要環境 PyPdfは、http://pybrary.net/pyPdf/からバージョン1.12をダウンロードしてインストール wxPythonがインストール済み 使い方 ソースPdfMerger.pyをダブルクリックす…

pdfファイルをマージするアプリケーション(1)

これまで、複数のpdfファイルをまとめて一つのファイルとするためには、Adobe Acrobatを使うしかないと思っていた。数年前には、そのためだけにわざわざAcrobatを買ったこともある。しかし、pythonのライブラリpyPdf(http://pybrary.net/pyPdf/)を使えばでき…

 電卓プログラム(1)

べただけど初心に帰って電卓を作成した。最小限の機能しかまだないがとりあえず動く。 使い方 Calculator.pywをダブルクリック 数字を入力(マウスでボタンを押しても直接入力してもよい) ボタンで演算記号を入力(+, -, *, /) 続けて数字を入力 続いて演算…

数式のグラフ化プログラム(5)

完結編。いただいたコメントをもとにして、2次元プロットと3次元プロットができるようにした。 使い方 xとyの関数形を媒介変数tで表わす。その形を入力する。 yをxの関数で与える場合にはx=tとしてyをtで表わす。 表示するtの範囲(最大値と最小値)と刻み幅…