wxPython
ウィンドウを開くのだが、ある条件になったときに開いたウィンドウを自動的に閉じたい場合が多々ある。閉じる条件はいろいろあり、閉じる方法もまたいろいろ考えられる。 ここでは、次々更新される外部ファイルの内容を読み取って、そのファイルの中に特定の…
wxPythonとMatplotlibで作ったスクリプトを、py2exeでバイナリ化しようとしたら久しぶりなので設定を忘れてしまい、どうにもこうにもできなかったので、あきらめてpyInstallerを使うことにした。参照:http://retrofocus28.blogspot.jp/2013/10/pyinstallere…
VMWare上で動作しているCentOSにwxPythonをインストールして、GUIアプリを起動したときに出てくるメッセージ。プログラムの実行には影響ないようだが、気持ちのいいものではない。 Another agent is running... Failed to allocate the agent. Exitting... F…
ディレクトリ(フォルダ)選択ダイアログを開きたいときには、wx.DirDialogを使う。そのとき指定できるスタイルは以下の通り。(参照:wxPython API Documentation — wxPython Phoenix 4.0.3 documentation) スタイル 説明 wx.DD_DEFAULT_STYLE デフォルトの…
ソフトウェアにタイマーのようなものを仕込みたい。 例えば、ある時間が経過すると何かが発動するようなもの。用途はいろいろ考えられるが、ユーザーに提供するお試し版ソフトウェアをある期日まで使用可能とし、それ以降は起動できないようにする、とか。悪…
スクロールするパネルの上にタブを置く。 このとき、作ったプログラムがおかしな挙動を示すので、簡単な例から原因を追及する。 取り急ぎ作成のプロトタイプは、全く異常なし。予想通りの動作を示す。 ソースコード。 import wx import wx.lib.scrolledpanel…
StdDialogButtonSizerについて調べていたら、wxPythonコードのスタイルガイド(全10項目)を見つけたので、内容を確認し今後書くコードにできるだけ反映させたい。これに準ずるように努力すれば、クリアでPythonicなコードになるらしい。以下引用の出典:wxP…
←Linuxでの表示 ←Windowsでの表示ダイアログにボタンを配置する場合、「Yes」「No」であったり、「Cancel」「OK」であったり、複数のボタンを並べなければいけなくなると、どう配置したらいいか迷ってしまう。その上、ダイアログが増えてくると、あっちのダ…
threadを使うwxPythonによるGUIがクラッシュするときに表示される、エラーメッセージのいくつかのパターン。 パターン1 (python:14799): Gtk-CRITICAL **: gtk_text_layout_wrap_loop_start: assertion `layout->one_style_cache == NULL' failed パターン2 …
最近、Linux上でGUIを動かすときに悩まされるバグ。 Gtk-ERROR **: file gtktextlayout.c: line 1113 (get_style): assertion failed: (layout->one_style_cache == NULL) aborting... どうも、Thread関連のエラーらしい。Thread実行するとGUIがクラッシュす…
matplotlibで久しぶりにグラフを描く。 複数の線を描くので、線ごとにラベルを付けたかったのだが、label='...'をplot(...)の中に加えるだけでは表示されず、あれこれ迷う。簡易コードを書いて2時間ぐらい奮闘し、やっとlegendで表示位置を指定しなければ書…
OpenGL ES on Python: Writing x, y and z axis 参考にする。 さらに矢印を描く。 http://8.ldblog.jp/archives/52085019.html 結構、面倒だ。
2011-04-19 - 理想のユーザ・インターフェイスを求めて において、キーボード入力を受け付けるようにしたが、Linuxでself.Bind(wx.EVT_CHAR, self.OnKeyboard)が無視される問題に気づく。 どんなキーを押しても反応なし。
2011-09-28 - 理想のユーザ・インターフェイスを求めての続き。wxPythonの話。 VListBoxのサンプルを改良して、他で使える形にもっていく。 改良のポイントを列記すると、 リストはVListBoxで作成 リストの前後に他のコントロールを配置 ボタンを押したとき…
GUIアプリケーションのための、ログイン用のダイアログを作成する。 このダイアログでの認証が成功しなければ、メイン画面の操作ができないようにしたいときに使用する。アプリケーションの画面をロックしたいときにも使える。 wxPythonの料理本の3章の4に出…
wxPythonでGUIを作るときの話。wxListCtrlでリストを作成して表示する。しかし、リストが大きくなると表示にかかる時間やメモリの消費量も無視できなくなってくる。そのような場合のために、「バーチャルな」リストコントロールというものがある。リストの中…
最近の1ドル76円の円高を利用して、Amazon.comで洋書を購入。 下記3冊を9052円(+送料832円)で注文できた。実際には、1ドル80円ぐらいで換算されている。8月25日に注文して、9月5日着。予定より1ヶ月ぐらい早く到着。Wxpython 2.8 Application Development…
wxNotebookを使って、いくつかのパネルをタブ切換えで表示させている。このとき、あるパネルだけ非表示にしたいときがある。そのときは、Hide()を使うことにする。 例えば、下記のコード。 import wx class MyApp(wx.PySimpleApp): def OnInit(self): Frm = …
GUIの画面上で、マウスの右ボタンをクリックしてメニューを表示させる方法を検討する。「wxPythonデモ」のListCtrl.pyを参照した。 下のコードでは、マウスの右ボタンを押して離したとき(wx.EVT_RIGHT_UP)に、ポップアップメニューを表示するようにしている…
wxListCtrlで作成した表において、セルの値を直接編集することはできない。SetStringItemメソッドで、値を変えることはもちろんできるが。ここでの直接編集とは、マウスで表のセルをクリックして値をキーボードから入力するようなことを指す。wxGridなどを使…
matplotlibをインストールするとき、backendをaggに指定してしまったらしい。そのため、以下のスクリプト(グラフを描いてウィンドウで表示するだけ)を実行すると、エラーになる。 import matplotlib import matplotlib.pyplot as plt fig = plt.figure() a…
プルダウンメニューから項目を選ばせたいとき、wxChoiceを使うことができる。こういうやつね。 このwxChoiceの項目を、動的に変える方法を考える。アプリを起動してから終了させるまで、項目を変える必要がないなら何もしなくても良いが、ある操作によって選…
ボタンを押すと出たり消えたりするパネルを、wxPythonで作りたい。wxCollapsiblePaneが、一番動作イメージに近いかな、と思うので使い方を検討する。参考:wxPython API Documentation — wxPython Phoenix 4.0.3 documentation例えば、「Show」の方のラジオ…
wx.Notebookで、タブ切換えの複数の画面を作りたいときには、Frameの上にNotebookを置いて、以下のようにやればよい。 import wx class MyApp(wx.PySimpleApp): def OnInit(self): Frm = wx.Frame(None, -1, 'Title', size=(500, 500)) nb = wx.Notebook(Frm…
wx.PlatformInfoクラスで、wxPythonを実行しているプラットフォームの情報が見られる。日頃使っているそれぞれの開発環境で実行してみた。 CentOSでは >>> wx.PlatformInfo ('__WXGTK__', 'wxGTK', 'unicode', 'gtk2', 'wx-assertions-on', 'SWIG-1.3.29') W…
gifのアニメーションファイルは、通常の画像ファイルのようにwx.StaticBitmapで画面に貼り付けても静止画として表示されるだけ。アニメーションを再生させるには貼り付け方を変えなければいけない。どう変えるか? wxPythonのデモの中に、複数のgifアニメー…
同じコードをWindowsで実行すると、ちゃんと画面遷移する。途中で固まったりしない。問題なし。 実は問題がある。表示される画像サイズがフレームと合っていない。 なぜこんなことになるのか不明。ちゃんとスケールしているのに。
昨日(デジタルフォトフレームの動作をソフトウェア的に実装する - 理想のユーザ・インターフェイスを求めて)のコード実行時のエラーなのだが、うちのMacでだけ起こるエラーのようだ。Linux環境で実行したらエラーが再現されなかった。 (▲Chromeの画像を表示…
デジタルフォトフレームで実現している自動的な画像切り替えの動作を実装することが目標である。フォトフレームでなくても、スクリーンセーバーなんかでも見られる自動画像切り替えをどう実現するか、を自分のアタマで考えていろいろと試してみたい。 とりあ…
PythonのOpenGLライブラリを用いて、3次元図形の描画を行う練習をしている。 マウスで物体を回転したり平行移動したりしたかったのだが、回転と平行移動を組み合わせるとうまくいかない。そこで、とりあえずは平行移動をあきらめて、現状のコードをまとめる…