wxPython

描画した図形をマウスで操作する(8)

PythonのOpenGLライブラリを用いて、3次元図形の描画を行う練習をしている。とりあえずは以下のプロセスに沿って、いろいろと機能を試して練習を進めている。 なんでもいいので3次元の図形を描画する(practice1.py) 描いた図形をマウスで回転できるようにす…

描画した図形をマウスで操作する(7)

PythonのOpenGLライブラリを用いて、3次元図形の描画を行う練習をしている。とりあえずは、次のプロセスに沿っていろいろと機能を試して練習を進める。 なんでもいいので3次元の図形を描画する(practice1.py) 描いた図形をマウスで回転できるようにする(prac…

Pythonでネットワークプログラミング(7)

TCP/IPプロトコルでのネットワークプログラムをPythonで書くための練習。 今回の検討項目 前々回(http://d.hatena.ne.jp/Megumi221/20110414)に作成したクライアント-サーバ型の簡単な計算プログラムでは、サーバ側で長時間かかる計算を外部プロセスとして実…

Pythonでネットワークプログラミング(6)

TCP/IPプロトコルでのネットワークプログラムをPythonで書くための練習。 今回の検討項目 前回(http://d.hatena.ne.jp/Megumi221/20110414 )までに、外部プロセスとして計算プログラムを実行するクライアント-サーバ型のプログラムを作成した。そのとき、サ…

Pythonでネットワークプログラミング(5)

TCP/IPプロトコルでのネットワークプログラムをPythonで書くための練習。 今回の検討項目 前回(http://d.hatena.ne.jp/Megumi221/20110412 )までに、クライアント-サーバ型の簡単な計算プログラムを作成した。計算プログラムでは、サーバプログラムは、送…

Pythonでネットワークプログラミング(4)

TCP/IPプロトコルでのネットワークプログラムをPythonで書くための練習。 今回の検討項目 前回(http://d.hatena.ne.jp/Megumi221/20110409 )はwxPythonでネットワークプログラムをラップした計算プログラムを作成したが、細かい動作の仕様もできるだけ決め…

描画した図形を操作する(5)

PythonのOpenGLライブラリで、図形の描画を行う練習をしている。とりあえずは、以下のプロセスに沿って、いろいろと機能を試して練習を進めていく。 なんでもいいので3次元の図形を描画する(practice1.py) 描いた図形をマウスで回転できるようにする(prac…

Pythonでネットワークプログラミング(2)

TCP/IPプロトコルでのネットワークプログラミングをPythonで実装することが目標。 今回の検討項目 前回(http://d.hatena.ne.jp/Megumi221/20110310)は、簡単なチャットプログラムを実装してみたが、ここではネットワークプログラムにGUIをラップする方法を検…

画面上にファイルをドラッグ&ドロップすると、ファイル名が表示されるようなアプリケーションの実装

アプリケーションを立ち上げて、その画面にファイルをドラッグ&ドロップすると、画面にそのファイル名が表示されるような仕組みを、wxPythonで実装したい。 そのためには、wx.FileDropTargetクラスを使えばよい。例えば、下記のコードのように書ける。 impor…

グリッドのセルの色を変える

グリッドで表を作るときに、何も指定しなければ各セルは背景色が白くなる。白一色では味気ないので、一行おきに色を変えたりすると見栄えがよくなる。 例えば、こんな感じ。 ソースは以下の通り。 import wx import wx.grid class TestFrame(wx.Frame): def …

GUIを起動中のディレクトリの移動

GUIプログラムを実行中に、現在どこのディレクトリにいるかが重要になる場合がある。例えばGUIの中で、ファイルの入力が必要な外部プログラムを呼び出し実行するような場合を想定しているのだが。 そのとき、ファイルのパスを外部プログラムに与えなければな…

gettextで日本語化の検討(4)

Linux上で日本語化したアプリを、Windowsに持っていったときに起動すると、UnicodeDecodeErrorになってしまい、日本語版が起動できない問題を検討する。 UnicodeDecodeErrorというのは面倒なので、Windowsで起動する英語表示のアプリを、Windowsで.moファイ…

gettextで日本語化の検討(3)

複数ファイルからなるソースコードを日本語化する場合の方法。 xgettextでmessages.poファイルを作成するときに、引数で必要なファイルをすべて指定すればうまくいく。 (例)以下の3つのソースファイルからなるプログラムの場合 # file-name: progress.py im…

gettextで日本語化の検討(2)

昨日の、日本語表示はされるが英語表示に戻せなくなる問題。 http://d.hatena.ne.jp/gymno/20090420/1240245430 http://wiki.wxpython.org/Internationalization#Example_1 ↑この通りにやれば、ちゃんと日本語表示される。Linuxで動作確認できた。moファイル…

gettextで日本語化の検討(1)

gettextを用いて、wxPythonで作る画面を日本語化したい。 まず、Linuxでやってみる。例えば、プログレスバーを表示するだけの例なのだが、下記のソースがある。ファイル名はprogress.pyとする。 import wx if __name__ == "__main__": app = wx.PySimpleApp(…

wxPythonのcookbook

新刊でた。Packt publishingという会社は、オープンソースの活動を支援していて、本が売れると収入の何割かをプロジェクトに寄付するらしい。これを買うことで、自分でも手軽にwxPythonの発展に貢献できる! しかし、内容はともかくこの表紙のセンスは疑問だ…

グリッドテーブル

Gridテーブルの中で、値を選択したり、チェックを付けたり、値を入力したりと、いろいろなことを一度にやるためにこれまで使ったことがないgridのクラスを試してみる。 挙動が不明な点がいくつかあるので、詳しくソースを見ることに。 import wx import wx.g…

wxTextCtrlに値を自動入力

http://d.hatena.ne.jp/Megumi221/20101013 (wxTextCtrlを二つ並べて、最初の入力欄に値を入れると同時に、後の入力欄にも同じ値が入るようにしたい)の宿題を解決。 'abc'と順に最初のwxTextCtrlに入力する場合、'a'を入れた時点で次のwxTextCtrlに自動的…

(課題)TextCtrlに値を自動入力

wxTextCtrlを二つ並べて、最初の入力欄に値を入れると同時に、後の入力欄にも同じ値が入るようにしたい。'abc'と順に最初のwxTextCtrlに入力する場合、'a'を入れた時点で次のwxTextCtrlに自動的に'a'が入力されるような感じ。 EVT_TEXTで、どうにかなりそう…

 MDIFrameの挙動がWindowsとLinuxで異なる

MDIというのは、90年代の始めにMicrosoftが考案したものなのだな。Excelなんかがすぐに思い浮かぶが、一つのフレーム(親フレーム)の中にたくさんのフレーム(子フレーム)を表示する方法だ。 wxPythonでも実装できるのだが、Windowsネイティブのwidgetsを…

wxPython in Action

最近の円高で、洋書をAmazon.comで買うには絶好の時期かと思い、「wxPython in Action」をとうとう購入することに。 数ヶ月前から、春風さんのwxPython indexも閲覧できなくなってるし(何があったのか心配してます...)、そろそろ体系的に勉強してみようか…

エラーメッセージ

Gtk-ERROR **: file gtktextlayout.c: line 1113 (get_style): assertion failed: (layout->one_style_cache == NULL) aborting... Aborted Linuxでthreadモジュールを使ったときに発生するエラー。 原因を調べる。

wx.lib.platebtnを使えるバージョンは?

http://www.wxpython.org/docs/api/wx.lib.platebtn-module.html これによると、wx.lib.platebtnモジュールは、python2.4以上、wxPython2.8以上で動作するようだ。 それを踏まえて、もう一度動作確認する。wxPythonは、バージョン2.6と2.8をインストールして…

Linuxでデモコードが動かない

DebianでwxPythonのデモコードが動かないことが判明。昔はちゃんと動いたような気がするのだが。Synapticパッケージマネジャからインストールしたデモコードなので、問題なく動いて欲しいのだが...。 user1@debian0:~/Download/wxPython-2.8.10.1/demo$ pyth…

 プログレスバーの表示方法

wx.lib.agw.pyprogressを使う例。demo_wxPythonの中の使用例を簡略化して、最小限の機能を有効にしたもの。 ボタンを押したとき、図のようなプログレスバーが表示されるようになる。よくあるプログレスバーよりも若干かっこいい。 import wx.lib.agw.pyprogr…

 表示されている画像の切り替え方法の練習

ボタンを押すと表示されている画像が変わるようにしたい。 ここでは矢印の絵を二つ用意して、ボタンを押すことでそれらを交互に表示するようにしてみる。用意する画像ファイル(up.pngとdown.png)は32ピクセル×32ピクセルの大きさである。 wxPythonデモのIm…

文字を入力する欄に画像を貼り付ける

こういうことができないか、検討する。例えば下図に示すように、TextCtrlの中に画像を入れ込みたい。 このTextCtrl内にはディレクトリパスを表示するので、機能的には画像を表示する意味はない。でも画像があることで、ここにはディレクトリパスが表示される…

ファイルに行番号を書き込むツールを作ってみる

ソースコードをWordのファイルか何かにコピーする場合に、行番号を表示させて貼り付けたい場合がある。普段はTeraPadを使っているので調べてみると、TeraPadの場合にはAddNumというアドオンでその機能を実現できる。http://www3.wind.ne.jp/enable/soft/ htt…

PyDeadObjectError

ライブラリのバグだと信じたい。 Traceback (most recent call last): File "C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 14568, in __getattr__ raise PyDeadObjectError(self.attrStr % self._name) wx._core.PyDeadObjectError…

wxListCtrlで作成した表の値を編集

リストコントロールwxListCtrlを使うと、簡単にきれいな表を作ることができる。ただし、このままだと表のセルの内容を直接編集することができない。これではとても不便だ。ユーザであれば、値を書き換えるためにマウスでポインタを移動してセルをクリックし…