全11件 (11件中 1-11件目)
1
![]()
wxPython 入門 (1) に引き続き、wPython.org の Getting Started をサカナに第二弾。"Building a simple text editor" のあたりを見ていく。シンプルなテキストエディタを作ってみましょうというところ。#!/usr/bin/env python# -*- coding: utf-8 -*-import wxclass MyFrame(wx.Frame): """ Frame をベースに新しいクラスを作る """ def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(200,100)) self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) self.Show(True)app = wx.App(False)frame = MyFrame(None, 'Small editor')app.MainLoop()これを実行すると、テキスト入力ができるウィンドウが一つ表示される。一応、エディタというだけあって、Ctrl-X と Ctrl-V でカットアンドペーストなども対応している。wx.Frame を継承して、新しいクラス MyFrame を作った。まずは、フレームオブジェクトの初期化メソッド wx.Frame.__init__ だけを上書きして書き換えちゃう。wx.Frame.__init__(self, parent, title=title, size=(200,100)) と、親オブジェクト、タイトル、サイズをしていしてフレーム(ウィンドウ)を作っている。サイズの指定は、size=(横、縦)。ためしに、タイトルやサイズを変えて表示してみたりする。タイトルに日本語を入れたらどうなるか。class MyFrame(wx.Frame): """ Frame をベースに新しいクラスを作る """ def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(400,300)) self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) self.Show(True)app = wx.App(False)frame = MyFrame(None, '簡易エディタ')app.MainLoop()特に問題ないようだ。self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) をもう少し見てみよう。wx.Frame の中で、テキストコントロールを作ってやっているのだが、style=wx.TE_MULTILINE を外してしまうとどうなるか。そうすると、改行ができない一行だけのテキスト入力になる。ウィンドウサイズより長い文字列を入力することはできるが、自動的に折り返し表示をしてくれるわけでもなく、また、スクロールバーが自動的に出てくるわけでもなく、表示できる範囲だけ表示される。つまり、style で必要に応じて、テキストコントロールに対して適切な属性を設定してあげないといけないということ。TextCtrl は最低限、親ウィンドウを指定する必要があるが、ここでは self なので、MyFrame のフレームが親ということ。それでは、他にどんな属性が設定できるのだろうか。というのは後で見ることにして、前回は frame.Show() と、クラスの定義外で実行してフレームを表示していたのだが、今回は、クラスの定義の中で self.Show(True) としている。そうすると、メインのところがすこしすっきりする。さて、Show() メソッドで明示的に True を渡しているところも前回と違うところ。実際には、何も渡さなければ True がデフォルトなので動きとしては変わらない。代わりに、False を入れると、ウィンドウが表示されなくなる。ちょっと表示の状態をいじってみる。class MyFrame(wx.Frame): """ Frame をベースに新しいクラスを作る """ def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(400,300)) self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) print "step 2+" time.sleep(2) self.Show(False) # ここでは False に変更してみる。 print "step 2++" time.sleep(2)print "step 1"app = wx.App(False)print "step 2"frame = MyFrame(None, '簡易エディタ')print "step 3"time.sleep(2)frame.Show(True) # ここで True にした。print "step 4"time.sleep(2)app.MainLoop()__init__ メソッド内の self.Show(True) にしたり、self.Show(False) したり試してみる Show(True) で初めてウィンドウが表示されていないのが確認できるかな。また、Show(True), Show(False), Show(True) を繰り返せば表示したり隠したりすることができる。さて、いよいよテキストコントロールでどういう属性/スタイルを設定できるか見てみる。ちょっと力技。import wxfor name in dir(wx): if name.startswith("TE_"): print nameを実行してみる。TE_AUTO_SCROLLTE_AUTO_URLTE_BESTWRAPTE_CAPITALIZETE_CENTERTE_CENTRETE_CHARWRAPTE_DONTWRAPTE_HT_BEFORETE_HT_BELOWTE_HT_BEYONDTE_HT_ON_TEXTTE_HT_UNKNOWNTE_LEFTTE_LINEWRAPTE_MULTILINETE_NOHIDESELTE_NO_VSCROLLTE_PASSWORDTE_PROCESS_ENTERTE_PROCESS_TABTE_READONLYTE_RICHTE_RICH2TE_RIGHTTE_WORDWRAPということで、いろいろある。スクロールやワードラップ、右寄せ、左寄せ、センタリング等々の設定ができる。試しに TE_AUTO_URL も追加して、 self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE|wx.TE_CENTER|wx.TE_AUTO_URL) としてみると、ちゃんと URL が認識され、センタリングされた。デフォルトで、スクロールバーは必要に応じて出てくるので、TE_NO_VSCROLL も追加したり、パスワード用に TE_PASSWORD も追加したりいろいろやってみるとよいか。TE_PASSWORD を指定すると、全部の文字が * で表示されるようになる。TE_AUTO_URL は、URLを認識してくれるけれど、そこにマウスを持っていったときにwxTextUrlEvents を拾って、さらに処理を書いてあげないとクリックしても何にもならない。サポートもWin32環境下だけ。色やフォントを使ったリッチテキスト (TE_RICH も TE_RICH2) も Win32 依存。Unix とかだとリッチテキストじゃなくても、色やフォントを使えるが、Windows の場合は、リッチテキストにする必要がありそう。Windows と Linux の両方で動くようにしたいとき、このあたり注意が必要なのかな。class MyFrame(wx.Frame): """ Frame をベースに新しいクラスを作る """ def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(400,300)) self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE|wx.TE_RIGHT|TE_AUTO_URL|wx.TE_RICH) self.Show(True) print self.control.GetDefaultStyle()TextCtrl の日本語の説明があった。すばらしい。wxTextCtrl。でも、アルファベット順クラスリファレンス を見ると、翻訳済みのものは、限られていようだけど。さて、フォントを設定したり、背景色や文字色を変えたりするにはどうしたらよいのかなども含めて、次回、もう少し詳しく、TextCtrl を見ていこうかと思う。亀のような歩みだなぁwPython 3プログラミング徹底入門価格:5,040円(税込、送料別)エキスパートPythonプログラミング価格:3,780円(税込、送料別)
2010.09.30
コメント(0)

ビデオを見たり、検索で見つけたコードを見てみたが、本格的に wxPython を学ぶにあたって、Getting started with wxPython を読むことにする。ネタとして、かなりの長期間に渡って使えるので、シリーズとして続けることにした。ということで、第一弾。ただし、いつまで続くかは分からない。一回だけで終わるということはないと思うけどwA First Application: "Hello, World" では、ウィンドウが表示されて、タイトルバーに "Hello, World" と表示されるだけの一番、基本的なアプリケーションの作り方から始まっている。ウィンドウ内は、灰色で表示され、真にそっけないもの。だけれど、ここからだけでも学べることがたくさんある。#!/usr/bin/env python# -*- coding: utf-8 -*-import wxapp = wx.App(False) # 1. アプリケーションの作成frame = wx.Frame(None, wx.ID_ANY, "Hello World") # 2. トップレベルウィンドウの作成frame.Show(True) # 3. トップレベルウィンドウの表示app.MainLoop() # 4. アプリケーションを動かし続ける古いコードだと、wx.App() ではなく、wx.PySimpleApp() にしているものも多いが、実際のところは同じなので、シンプルに、wx.App() でよいようだ。wx.App クラスは、wxPython のシステムを初期化して、GUI が使えるようにするための準備を最初にしてくれる。また、アプリケーション全体で使わる属性なのどの設定をしたり、イベントループにまつわるさまざまな下準備をしている(イベントループを作って、ウィンドウやマウス、キーなどのイベントを拾うようにしたり等)。なので、これがないと動かない。引数で False を指定しているのはなぜ? 明示的に書けば、redirect=False それを確認するには、False を指定せずに、次のようにして試してみればよい。ついでに、wx.App() を wx.PySimpleApp() にしても同じような動作になる。実際のところ、class PySimpleApp(wx.App): なので。通常は、wx.App() が Style Guidee 的にもよろし。#!/usr/bin/env python# -*- coding: utf-8 -*-import wxapp = wx.App() ###### False を削除frame = wx.Frame(None, wx.ID_ANY, "Hello World") frame.Show(True) print "Hello, wxPython" ###### この行を追加app.MainLoop()そうすると、stdout/stderr に出力があった場合、別のウィンドウが表示されて、そこにエラーやメッセージが表示されるようになる。つまり、print 文の結果は、それ用のウィンドウが新たに作られて、そこに表示される。そうしたら、もう一度、wx.App(False) に書き換えてから実行してみる。そうすると、メッセージは、python を実行したコンソール上に表示される。開発が終わるまでは、False をつけておいた方が、エラーで落ちてしまった場合にもメッセージが消えないのでよいと思う。ちなみに、import wx の行を from wx import * とかすれば、たとえば、wx.App() とせずに、App() でいけるようになるものの、そういうコードは止めてねと Style Guide に書かれているので止めましょう。import * にしてしまうと、何がインポートされているか完全把握していない限り、何か自分が作ったものと名前がぶつかる可能性があるから危険。wx.App() は wx.MainLoop() と対応していて、MainLoop() を実行して初めてアプリケーションのループが動き続けて、イベントを拾い続けながら動き続ける。このループのおかげで、ipython から wxPython を使うときには、何もしないと、MainLoop のイベントループから ipython に制御が戻ってきてくれない。そこで、ipython を起動するときには ipython -wthreadのように "-wthread" のオプションをつけて起動する。そうすると、wxPython は ipython と別のスレッドで実行される。それゆえ ipython のコマンドプロンプトを使い続けることができる。wxPython の Frame は、実際には一般の人がウィンドウとして認識しているものを指している。つまり、wx.Frame はウィンドウを作るためのクラス。なんで、wx.Window にしてくれないんだ、わかりにくいって言わないで。wx.Window は、Frame や Menu, Button といったクラスの基底クラスになっているので、すべてはそこから始まっているのだから。目に見えるパーツは、すべて wx.Window を何らかの形で継承していると覚えておく。Frame の最初の引数は、親オブジェクトだが、ここではトップレベルなので None となる。次の引数が、そのウィンドウの ID なのだが、これは特別に必要とする場合以外は、不要というか、つけない方がいい。つまり、frame = wx.Frame(None, wx.ID_ANY, "Hello World") の行は、Style Guide に従えば、frame = wx.Frame(None, title="Hello World") の方が、よいんじゃなかろうか。ちなみに、wx.ID_ANY は他で使われていない ID を割り当てるためのもので、値としては -1。なので、frame = wx.Frame(None, -1, "Hello World") とすることも可能。ID を省略してしまえば、実質上、wx.ID_ANY を指定しているのと同じ動きになる。なので、上記のコードで問題なく動く。ただし、ID の引数を省略しているから、キーワードパラメータで明示的に title= としている。wxPythonで定義されている標準的な ID については、standard IDを参照。掘り下げていけばネタはまだあるが、とりあえず、このあたりにしておく。
2010.09.30
コメント(1)
![]()
動画で学ぶ wxPython を使った GUI プログラミング で動画で基礎を学んだので、今度は、Google で検索して、簡単な例を見つけてみることにする。最初から大きいものだと大変なので、できるだけシンプルな例を探す。Wxpython in Action[洋書]価格:7,875円(税込、送料別)ちなみに、楽天だと、この本、売り切れ中だな。プログレスバーの例画像を移動するためのプログラム wxPython でお手軽 gui では、ファイルの移動時に進行に合わせて、プログレスバーを表示する参考になる。wxProgressDiag (format 文を使っているところは、Python 2.6 などだと書き換えが必要。単純に "%d /%d" % (x/100, count) のような従来の形式に書き換える) なども参照。もう少し発展系として、画像ファイルを選択して処理する例と。処理するファイルがあるディレクトリを選択して、画像を指定のサイズに変更する例。wxPythonでGUIを作成してみる 【1】PythonでGUIアプリケーション【2】Pythonで画像を一括縮小して正方形にするツールの完成版画面に画像を貼り付けるGUI の画面に画像を貼り付けたいときは、画面に画像ファイルを貼り付ける(ImageAlpha.py) を参考に。透明度(αチャンネル)を設定して表示。Web表示 wxWebKitを使って、WebKitエンジン製の簡易なブラウザを作ってみる なんていうこともできる。wxWebKit - wxWidgets backend (and frontend) for WebKit 。ただし、ちょっと試した限り WebKit が安定して動いてくれず、よく落ちるので、ちょっとつらい。Twitter への post[python]twitterに文章をpost 2wxPythonで作った GUI から OAuth を使って Post する例。 tweepy を使った OAuth については、あーあ、俺を認証してくれねぇかなぁ!!、TwitterのbotをOAuthに対応させる あたり参照。ついでなので、やる夫と Python で学ぶ Twitter の OAuthも参照OAuth 調べてみたら難しくて理解出来なかったので,Python で標準ライブラリだけで 1 から書いてみました.ということで、順を追って説明されている。matplotlib を使うmatplotlib with wxPython GUIs のように、matplotlib を使ってグラフを描く例。このサイトには、 A Tetris clone in Python / wxPython 見たいなサンプルもある。matplotlib は強力。日本語を出せるようにできるのかな。Gnuplot-py で日本語を表示する は以前にやってできたけど。matplotlibで日本語表示~解決編 を見たら日本語OKなのか。なんだそれだけのことか。matplotlib を今度使い込んでみよう。ドラッグアンドドロップPDFファイルをドラッグアンドドロップで指定して、Title や Author、テキストを抜き出してテキストファイル化するツール(PDF -TXTの変換は、xdoc2txt) PDF管理ソフトを作ってみた は、ファイルのドラッグアンドドロップして、外部プログラムで処理して、というようなツールを作るときの参考になる。xrced を使って GUI 部分は作ったみたい。テキストやURLのドラッグアンドドロップで参考になるのは、wxPythonでドラッグ&ドロップ+クリップボード。いろいろなウィジェットinfinity77 Freeware Section にいろいろなウィジェットが公開されている。すげぇー。王道ビデオを見て、さらに、断片的なシンプルな例を見てきたが、ちゃんと学習するためには、やっぱり、wxpython.org の How to learn wxPython からはじめるのが王道かな。英語のドキュメントになってしまうけれど。 とりあえず、Getting started with wxPythonZetcode wxPython tutorial.Learning wxPython by ExampleStyle Guide for wxPython codeHow to Use wxPython Demo Code"Style Guide for wxPython code" は読んだ方がよい。でも、実際のところスタイルガイドに従っていないものってかなり存在している。wxPython.org のサイトの中にもwまだ、xrced 、wxGlade, Boa Constructor, PythonCard とかの GUI ビルダーの類はまたの機会に。PyQt はとりあえず手を出さない。Qt Development Tools の Qt Designer とか素敵だけど。eclipse + pydev のトラブル解消wxPython使おうとして"Undefined variable from import"と怒られた話エラーの種類は "Undefined variable from import:**"(定義されていない変数)だった。これは、ソースコード上定義が存在しないためで、新しいバージョンのpydevだと起こることがあるらしい。このエラー、プログラムの実行自体はできてしまうので特に問題はないけど、やっぱり目障り。なんとか消せないかと探していたら、PydevのインタプリタにwxPythonパスを通せば消えるとのこと。eclipseでの設定方法は↓ということらしい。関係ないこと超人大陸 の 青山繁晴氏のコンテンツ を見る。さらに、青木直人BLOG の 尖閣戦争と、アジア開発銀行はどこにゆくを読む。ちなみに中国外務省は日本に謝罪と賠償をせよ、と声を荒げていますが、すでに日本政府は謝罪も賠償も実行中です。というのも、今年中にも日本を抜いて世界第二位になると見られる中国にいまでも返済不要の無償援助というODAを続けているからです。これがすべて日本国民の税金であることは言うまでもありません。そればかりか、日本が最大の出資国であるアジア開発銀行(ADB)はいまでも単年度でODAとほぼ同額にも上る援助を行っています。驚くのは、円借款で、『中国の軍事拡大に利用される可能性がある』との理由からすでに中止されている道路、鉄道、空港などプロジェクトに対して、いまも大々的な支援が行われていることです。こうした諸設備を人民解放軍が優先的に使っている事実は言うまでもありません。アジア開発銀行はどこにゆく暗くなっちゃうねぇ。「お前はすでに払ってる!」。中国にも、米国にもせっせせっせと朝貢してる日本。中国への賠償金は支払い済み。過払い金請求訴訟を起こしましょうw民主党は、自民党にも増して、いろんな形で中国への貢物を増やすぞ。増税は、外国に貢ぐため。新たな増税分は、すべて外国へ。
2010.09.29
コメント(0)
![]()
いじわるパンダの動画 (2010.09.21) で、日本の企業を人質にとってるから、強気、強気、強気。日本の企業は総会屋にさんざんお金はらってきたしね。脅せば落ちる。と書いたが、まさか、ほんとうに人質をとるとは思っていなかった。最終的に人質戦略で成功したというのは、非常によろしくないことで、今後、世界各国で日本人の誘拐事件が増える可能性を高めた。ただでさえ、日本人を人質にとれば儲かるというのが定説になっているだろうに。それにしても、いじわるパンダの動画、中国パンダが日本パンダを追い落として、韓国パンダはなんとかしがみついて残ったって感じに見える。 レアアースは、人民網日本語版に前から 「レアアース王国」に発言権がないのはなぜか みたいな記事が載っていて、これを見ると、関心がよくわかる。 「中東には石油があり、中国にはレアアースがある」。これはトウ少平氏の1992年の言葉だ。だがレアアース(希土類)は石油よりも貴重とされながら、中国はまだレアアースによって相応の富を得ていない。一方、日本や米国などのレアアース使用大国は、中国からレアアースを安く購入してため込み、戦略的備蓄としている。ある消息筋によると、日本が海底に貯蔵するレアアースは、少なく見積もっても今後20年分はあるという。大河網が伝えた。レアアースため込む日本、中国に輸出制限緩和を要求 Sep 07 2010ちなみに中国に詳しいジャーナリスト青木直人BLOG 中国船長釈放についてなど見ても経済界が警戒していたレアアースについても、中国政府が事件以前のこの夏から日本だけではなく海外に対して輸出を中止するとしていたもので、今回特に新しく報復処置として、持ち出されたものというわけではありません。つまり中国の繰り出したカードの狙いは政治的アピールにあり、中国側に及ぼす実際のダメージは限定的なものばかりが選ばれているのです。ですが、それを朝から晩までテレビメディアはなにか大変なことが起こっているかのように『現場からお伝えします』と煽り続けていたのです。敗北したのは政府だけではありません、中国の流す一方的な情報をただただ垂れ流すだけだったジャーナリズムも一敗地にまみれたのです。どっちがおっかない!?中国とアメリカ価格:1,000円(税込、送料別)まあ、これから中国は、ますます強気で日本企業からも、金を巻き上げることになるだろうな。中国がトヨタの金融部門に罰金、リベート供与で-新華社 のようなものも増える。中国でリベートや賄賂を使わずにビジネスをしているなんていうのは考えられないから、いつでも、どの企業が犠牲になるかわからない。たぶん、関係者への賄賂が足りないから、つかまっちゃったんだよw でも、今後、2012年へ向けて、中国国内の勢力争いが激化していくだろうから、負け組みに貢いでいる企業は将来泣きを見ることになるだろう。汚職の摘発は、権力強化の側面があるし、それがいけないとは誰も言えないから、いちばん権力強化のよい手段。いずれ、集金PAY も失脚するだろう。民主党政権の役割は、日本を停滞させること、というシナリオがますます現実味を帯びる今日この頃。自民党が最近、「民主党はアンチビジネス」という言葉を使い始めているが、アンチ国産ビジネスなのであって、アンチビジネスではないと思う。日本から製造業を海外に流出させるのが目的なので、別に、海外に進出して儲けが増やせるのであれば、それ自体は「アンチビジネス」ではない。単に日本の国力が落ちるだけ。中国や韓国にとってはまさにプロビジネスなんじゃなかろうか。特亜優遇内閣だし。銀河英雄伝説にあてはめると、仙石官房長官=アーサー・リンチ少将。卑怯者の工作員。銀河英雄伝説では、アーサー・リンチがグリーンヒル大将を射殺することになるが、仙石官房長官が菅首相に止めをさすことになるかもしれないな。そして、殺した後に、私はグリーンヒルの名誉を守ってやったんだとうそぶく。今の民主党は、自由惑星同盟/救国軍事会議 みたいな印象。表面上は「トリューニヒトら利権政治家の専横に憂うあまり軍事クーデターの敢行を決意」ということなのだが、実際には、帝国の差し向けた工作員アーサー・リンチの工作の賜物。帝国での権力移譲の最中に、できるだけ同盟の干渉を避けるために混乱させておきたいというのに手を貸したリンチ。何はともあれ、民主党は、尖閣諸島という高価な月餅を貢いだわけだ。ちょうどそういうじきだものね。意味を失い、ゴージャス化するばかりの月餅―シンガポール紙 だけど、月餅の中にいろいろ賄賂を詰め込むのは、とまらないよね。中国では、尖閣の次は沖縄って盛り上がってんじゃないかなぁ。とりあえず、尖閣周辺で漁業を自由にできるようになったから(もともとやってただろうけど、今度はおおっぴらに)、次は、尖閣のどこかに上陸だな。
2010.09.25
コメント(0)

先日、Python のコマンドラインオプション解析 OptionParser の GUI 入力版 を使ってみたが、これを機会に wxPython を使ってみましょうかということで、ShowMeDo に、たくさんのチュートリアルビデオがあるので見てみる。その前に、楽天でも、YouTube の動画を貼り付けられるようになったから、YouTube でも探してみる。"wxPython Programming Tutorial" が見つかった。このビデオはわかりやすい。wxPython の基礎を学ぶことができる。見ながら試すと、だいたい 1,2時間程度かかるかな。wxPython Programming Tutorial - 1 - Creating a Basic FramewxPython Programming Tutorial - 2 - Creating ButtonswxPython Programming Tutorial - 3 - Creating a Menu BarwxPython Programming Tutorial - 4 - Using Message DialogwxPython Programming Tutorial - 5 - Text Boxes for InputwxPython Programming Tutorial - 6 - List for InputwxPython Programming Tutorial - 7 - Static TextwxPython Programming Tutorial - 8 - Simple Text ProgramwxPython Programming Tutorial - 9 - Custom Bitmap ButtonswxPython Programming Tutorial - 10 - SliderswxPython Programming Tutorial - 11 - SpinnerswxPython Programming Tutorial - 12 - Check BoxeswxPython Programming Tutorial - 13 - List BoxeswxPython Programming Tutorial - 14 - Choice List Dialog基礎的なパーツは学べるものの、もう少し、実際にアプリケーションとして動くものを見てみたいというのであれば、次のものがある。wxPython Tutorial 1 - Making a framewxPython tutorial #2wxPython tutorial #3wxPython tutorial #4wxPython tutorial #5 Part 1wxPython tutorial #5 Part 2次に、ShowMeDo にある Python GUI Programming with wxPythonを見てみる。1. How to Download and Install wxPython2. A 'Hello World' Window in Five Easy Lines3. A First wxPython Application4. Adding a Menubar to Our Sample Edito5. An Introduction to Event-handlingwxPythonの初歩が学べる。ウィンドウを作って、そこで簡単な編集をできるような領域を作り、さらにはステータスバーをつけ、メニューをつけ、メニューからプログラムを終了できるようになる。次に、Build a wxPython Image Viewer [ID:179] を見てみる。このチュートリアルは、イメージファイルビューアを作ってみるもの。ダイアログからイメージファイルを読み込んで表示、また、それを左右反転表示できるようになる。さらに起動時にスプラッシュスクリーンを表示できるようになる。About ダイアログは HTML を表示するタイプ。ただし、最初のビデオだけ無料で見ることができるが、他の 13本は有料なので、動画は見ないで、ページの下にあるドキュメントとソースだけ読んでやってみた。ちなみに $29 払うと、1年間、有料の会員だけしか見られないビデオを見られるようになるようだ。wxPython を使っているとき、たとえば、ボタンをクリックしたら重たい処理が動くようなものを想定する。このとき、普通に書いてしまうと、GUI が固まってしまうけれど、wx.lib.delayedresult を使えば、そういうことがなくなるようだ。Executing long process in wx Python without threads or other kludgy ways. [ID:877]。表面上、thread を使わなくてもよいので、お手軽に使える。実際のところ、wx.lib.delayedresult 自体が内部的に thread を使ってワーカースレッドを動かしているのだけど。なぁんだ。とにかく、いくつかのビデオを見ながら手を動かして自分でコードを打ち込んでいくと、基本のところはビデオを見終わったころには覚えてしまうだろう。wxPython のドキュメントについては、wxPython, a cross-platform GUI LibraryやwxPython API :Package wx あたりを参照。
2010.09.21
コメント(0)

YouTube の動画を貼り付けられるようになったので、民主党に排斥されたチャンネル桜の動画を貼り付けておこう。それにしても、一万人訴訟なのになんでもっと話題にならないんだろう。【NHKの大罪】パイワン族が全記録提出を要求[桜H22/9/20]【NHKの大罪】華阿財氏、陳清福氏、藍昭光氏来日[桜 H22/9/20]9・17「NHK一万人集団訴訟」緊急報告集会【NHKの大罪】NHKの隠蔽工作とパイワン族の誇り [桜H21/10/6]【NHK集団訴訟】パイワン族・華阿財氏来日[桜H22/5/14]1/5【総点検!NHKの大罪】「JAPANデビュー」はいかに捏造歪曲ほかにもたくさん、この手の動画はあるけれど、とりあえず、こんなところで。NHK の中に中国人民にさえ嫌われている CCTV (China Central Television) がいるからなぁ。NHK は電通とのつながりも危ういものがあるしなぁ。台湾は、日本にとって『銀河英雄伝説』でたとえれば、イゼルローンみたいなものかもしれない。でも、そっちからせめてくるかとおもったら、フェザーン(韓国)経由できたりしてね。中国はすごいからなぁ。結局、自由惑星同盟は銀河帝国の統治下に入ることになる。なんてことにはなってほしくない。でも、東アジア共同体ってそういうことでしょ。大東亜共栄圏(中国さまが宗主国)。中国はまじめに国益・私益を追求していると思う。ちなみに、中国人で日本に土地を買っている人たちの中には、中国で内乱、革命等が起きたとき、あるいは、自分がパージされそうになったときに逃げるためという人たちもけっこういると思うw マネーロンダリングとかも。そういえば、民主党は、外国人地方参政権付与法案を統一地方選挙前に通したいだろうな。くわえて、人権擁護法案。そりゃ、外国人に首相にしてもらった人なんだから、あたりまえのこと。外国人に首相にしてもらった菅総理。なぜに違憲にならないのか、不思議でしょうがない。
2010.09.21
コメント(0)

楽天ブログで、ニコニコ動画に続いて、 YouTube の動画を貼り付けられるようになったので、使ってみる。楽天ブログに YouTubeを一緒に貼ろうキャンペーン。意地悪パンダは日本をどうしたいんだ。中国、多方面で日本への報復検討…尖閣衝突。船長の釈放が実現するまで、タイミングをはかりながら、報復措置を次々に打ち出し、「対日圧力」を強めていく方針だ。元の利上げ圧力に対しては、米国に脅せば脅すほど、利上げしないぞとやっていた中国。日本は脅せば折れてくれると思っているのでしょう。日本人は脅せば言うことをきく。脅せ、脅せ、脅せ!「日中」で早くも試練=尖閣沖衝突で対立拡大-菅改造内閣沖縄県・尖閣諸島沖での中国漁船衝突事件をめぐり、日中の対立が深まっている。中国側は閣僚級の交流停止を打ち出し、影響は経済分野にまで波及。改造内閣を本格始動させた菅直人首相は国連総会出席のため、22日に日本をたつが、ニューヨークでの温家宝首相との日中首脳会談は見送りとなった。亀裂修復の糸口もつかめず、首相は早くも試練に直面している。中国は強硬姿勢をとらなくたって、民主党は尖閣諸島を中国に渡すつもりだったのにねぇw尖閣問題、「毅然とした対応を」 那覇市議会が政府に意見書。尖閣諸島を中国に取られたら、つぎは本当に沖縄だからね。中国は、2012年に体制が変わるから、それに向かって、みんな今のうちに功績をあげておこうって躍起になりはじめているんじゃなかろうか。胡錦濤にしても、国家主席引退後にできるだけ自分にとってよい体制を作りたいだろうし。日本の企業を人質にとってるから、強気、強気、強気。日本の企業は総会屋にさんざんお金はらってきたしね。脅せば落ちる。日本は世界の植民地。日本人は世界の奴隷。米中共同で日本いじめ。
2010.09.21
コメント(0)

Python のコマンドラインオプションを解析するモジュールとして OptionParser があるが、将来的には argparse にとって代わられるというのをわかった上でのエントリ。とりあえず、まだ、私は Python 2.6 系使ってるし、すぐに OptionParser が使えなくなってしまうわけでもないし。PEP 389 argparse - New Command Line Parsing ModulePEP 389: argparse - 新しいコマンドラインparseモジュールargparseを使ってみた (そこはかとなく書くよ。)argparseoptparse-guiOptionParser は、あくまでコマンドラインからの使用が前提で、たとえば、次のようなコマンドオプションをとるプログラムを作りたければ、>python test.py --helpUsage: test.py [options] argsOptions: --version show program's version number and exit -h, --help show this help message and exit -f FILENAME, --file=FILENAME read data from FILENAME -a ACTION, --action=ACTION Which action do you wish to take?! -n NUMBER, --number=NUMBER Just a number -v, --verbose To be or not to be? ( verbose )こんな風になる。import sysimport optparsedef main(): usage = "usage: %prog [options] args" option_parser_class = optparse.OptionParser parser = option_parser_class( usage = usage, version='0.1' ) parser.add_option("-f", "--file", dest="filename", default = r'c:\sample.txt', help="read data from FILENAME") parser.add_option("-a", "--action", dest="action", choices = ['delete', 'copy', 'move'], help="Which action do you wish to take?!") parser.add_option("-n", "--number", dest="number", default = 23, type = 'int', help="Just a number") parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help = 'To be or not to be? ( verbose )') options, args = parser.parse_args() print 'args: %s' % args print 'options: %s' % optionsif '__main__' == __name__: main()でも、CUI は嫌いとか人から言われちゃったらどうするか。デスクトップのショートカットをクリックして動かしたいとか言われたらどうするか。子供でもできるPython で紹介した EasyGUI を使って、オプションを順に GUI から入力していくというのもありだろうが、もっと簡単にできないか。こんな画面から、オプションを入力できたらうれしいこともあるだろう。optparse-gui を使えば、ほんの数行変更するだけで、これができる。つまり、import optparse_gui を追加して、sys.argv の数が 1 のときに、optparse_gui を、それ以外のオプションがつけられて起動されたときには optparse を呼び出すように変更するだけ。parser.add_option のところは、まったく同じでいい。import sysimport optparseimport optparseimport optparse_guidef main(): usage = "usage: %prog [options] args" if 1 == len( sys.argv ): option_parser_class = optparse_gui.OptionParser else: option_parser_class = optparse.OptionParserWindows の場合、ファイル名の拡張子を '.pyw' にしておけば、ファイルをダブルクリックしたときに DOS窓が出てこないので、コマンドラインから使わずに、そういう使い方だけしてもよいだろう。もっとも、結果を標準出力に表示しているようなプログラムの場合は、そうはいかないけれど。その場合には、import easyguimsgbox("結果を表示する")みたいに EasyGUI も合わせて使えば、簡単に GUI プログラムになってしまう。もっとも、optparse_gui が wxPython を使っていて、EasyGUI が Tkinter を使っているから、無駄なことがおきるし、見栄えも異なるところもうれしくないが。optparse_gui、ちょっと残念なのは、easygui を使っているときには、ファイル選択のダイアログを出すことができて、ファイルを GUI で選択することができるのだが、optparse_gui の場合は、ダイアログを出すとかいうことはできない。あくまでコマンドラインから入力するものに対しての代替だから。たとえば、metavar="FILE" とかが parser.add_option にあれば、browse ボタンをつけて、ダイアログから入力するとか拡張したらよいかな。結果を出力できるようなウィンドウも作ってとか。あとは、オプションの名前を日本語で表示できるようにまでしたら、もっとうれしいか。ちょっとチャレンジしてみようかなぁ。
2010.09.13
コメント(0)
![]()
以前、「SQLite の全文検索を Python から使ってみる」のを試したことがある。SQLite の全文検索を Python から使ってみる (1)SQLite の全文検索を Python から使ってみる (2)SQLite の全文検索を Python から使ってみる (3)SQLite/Mecab の日本語全文検索をちゃんとやる方法SQLite Full Text Search with MeCab を試してみようと思いつつ、忘れてしまっていた。ふと、思い出してやってみたが、Windows 上で sqlite3 を直接使って、上記の tokenizer を使うと、ちゃんと動かせるのだが、pysqlite3 から使おうとしたらダメ。enable_load_extension が使えないので FTS3 の tokenizer を有効にできない。import pysqlite3print sqlite3.versionで python の sqlite3 のバージョンを見てみると、’2.4.1' だった(Python は 2.6 系を使っている)。sqlite3 ? DB-API 2.0 interface for SQLite databases を見てみると、New in version 2.7 と書かれている。Python 2.6 からじゃだめなのか。うーん。Windows 上では、 Python(x,y) をインストールしているので Python 2.6.5.3 を使っているので困った。(科学計算のための楽々環境 python(x,y)参照)。検索してみると、force python to forego native sqlite3 and use the (installed) latest sqlite3 version が見つかる。ということで、pysqlite downloads から新しいバージョンの pysqlite をダウンロードして使ってみることにした。pysqlite 2.5 系と pysqlite 2.6 系があって、どうするかなと思ったが、とりあえず最新のものを試してみる。つまり、pysqlite-2.6.0.win32-py2.6.exe を使ってみることにした。が、やっぱり、ダメ。setup.cfg を見ると、次のように SQLITE_OMIT_LOAD_EXTENSION が定義されているから。ということで、自分でコンパイルし直さないと使えないということになる。自分でコンパイルするときには、defind の行をコメントアウトして #define ... にしてやればいいだろう。たぶん。でも、環境を整えるのが面倒なので、ここで終了。[build_ext]#define=#include_dirs=/usr/local/include#library_dirs=/usr/local/liblibraries=sqlite3define=SQLITE_OMIT_LOAD_EXTENSIONということで、今のところ残念な結果。まだ、Python からはお手軽に使うことができないようだ。そういえば、『エキスパートPython プログラミング』をそのうち買おうかと思いつつ、まだ買ってない。エキスパートPythonプログラミング価格:3,780円(税込、送料別)
2010.09.12
コメント(0)
あまりに暑くて動きたくないので、離れたところにある PC の電源を入れるのに、Wake up On Lan Tool を使うことにした(使わないときはできるだけ OFF にしておく)。使い方は、とっても簡単なので、必要なときだけスイッチオンにする PC があるなら、使ってみるとよいと思う。[基礎解説]Wake-On-LAN入門 1.WOLが必要になる理由[基礎解説]Wake-On-LAN入門 2.WOLの仕組み[基礎解説] Wake-On-LAN入門 3.WOLを実際に試してみる関西プログラム試験場 Wake up On Lan Tool(Windows版)これを Python でできないかと探してみると、Wake a sleeping Mac from the network が見つかった。上記の「WOL の仕組み」にあるように、あて先アドレスが「FF:FF:FF:FF:FF:FF(ブロードキャスト・アドレス)」起動したいPCのLANアダプタに割り当てられているMACアドレス×16回を投げているだけ。参照ページの表題は MacOS X Hints のページなので Mac になっているが、他のものでも理屈は同じなので、同じコードで大丈夫。#!/usr/bin/env pythonimport sockettarget_mac = '\x00\x24\x36\xf0\xc4\x69'target_ip = '192.168.1.255'target_port = 80magic_packet = '\xff' * 6 + target_mac * 16s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM);s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,True)s.sendto(magic_packet, (target_ip, target_port))
2010.09.07
コメント(0)
久々に、『銀河英雄伝説』を見始めた。第24話まで見終えた。帝国での内乱の最中、同盟ではラインハルトが仕込んだリンチ少将に先導されてクーデーターが起きる。クーデーターはヤン・ウェンリーによって平定される。その話の最後の方に出てくるヤン・ウェンリーの言葉。政治の腐敗とは、政治家が賄賂を取ることじゃない。それは政治家個人の腐敗であるに過ぎない。政治家が賄賂をとっても、それを批判できない状態を政治の腐敗というんだ。貴官たちは言論を統制した。それだけでも、帝国の専制政治や同盟の現在の政治を非難する資格はない。そうは思わないか。「銀河英雄伝説 - 第24話 誰がための勝利」よりさて、日本はどうなっていくんだろう。【青山繁晴】国体と民意と憲法改正[桜H22/9/3]。それはさておき、「サポーター会費、900人分水増し」民主・下条議員元秘書らが告発状 なことが普通に行われる民主党(故人献金問題なんてのも過去にあったし)に嫌われているチャンネル桜が、けっこうYoutube でアクセスが多いというのは、以前からニュースと政治のランキングをチェックしていたので予測はついていたが、世界的に見ても報道で 20位とかで、意外に多かったのね。チャンネル桜が民主党に取材拒否されたらしく、怒りまくっているw 【言論と報道】ネットの影響力と民主党の取材拒否参照。それにしても、党員登録してないのに投票用紙…民主代表選とは、とほほだなぁというか、やっぱりねぇというか。ちなみに、米国人はどの程度登録登録してるんだろうか。CIAは在日米軍の関係者を大量に登録させるとか、工作活動してるんだろうか。安上がりな対日工作活動なのにねw 中国勢や韓国勢はどの程度の工作員が党員・サポーターになっているか。民主党は、国籍別党員、サポーター数を公開すべきだよな。実質上の、外国人参政権、それも首相選に投票できるのだから。どの国の影響が強いのかは日本国民全体に知らせるべき。もっとも、うそつき工作はいくらでも可能だろうけど。なにせ、死者でも党員やサポータになっている可能性もあるわけだしなぁ。【断舌一歩手前】民主党代表選、投票者の国籍条項導入を急げ![桜H22/8/10]とか、【ニュースの読み方】ありがとう小沢一郎さん[桜H22/9/1] とか 【山村明義】民主党代表選とこれからの日本[桜H22/9/2] とか、民主党が流して欲しくないような動画を腐るほど流しているから、嫌われているのだろうけど。それでも、民主党は嫌いなメディアには取材もさせないとかいうのだから(というかメディアとしても認めないという姿勢らしい)、中国の報道統制と同じだねと。ここまできたら、こんな企画もやっちゃう。そりゃ、民主党に嫌われるわなぁw1/4【討論!】こんなに楽しい!?共産主義[桜H22/9/4]2/4【討論!】こんなに楽しい!?共産主義[桜H22/9/4]3/4【討論!】こんなに楽しい!?共産主義[桜H22/9/4]4/4【討論!】こんなに楽しい!?共産主義[桜H22/9/4]そもそも、チャンネル桜は、特定の国が嫌うような番組をたくさん流しているから、中国や韓国、北朝鮮の工作員とかも、嫌っているだろう。民主党の中にも、特定国の工作員がいるのだろうかw 米国CIA はどうかといえば、おそらく、びみょーだよなぁと思っているに違いない。CIAから見ると、好ましいと思えるものもあれば、そうでないものもあるだろう。たとえば、「GHQ 焚書」 で検索すると出てくる 「GHQ焚書図書開封1」1/4(H19.2.1) みたいなことをやっている西尾幹二氏の動画なんて、やめてくれと内心思っているに違いない。【西尾幹二】これからの日本[桜H22/8/18]。基本的に、大東亜戦争/太平洋戦争は、アメリカが仕掛けた戦争だという歴史観だしね。根っ子に、けっこう反米なところがある。左翼の人も 【快刀乱麻】大空襲と原爆投下[桜H22/8/9] なんかは同調できるだろうし。チャンネル桜は、基本的に、日本会議 の勢力だな。そういえば、上記「【西尾幹二】これからの日本」の中で触れられている、NHK の番組で話題になった 【古谷経衡】日韓のこれから NHKのこれから[桜H22/8/25] とか、おもしろい。この番組は見たが、こういうやりとり の部分ね。この動画は、NHK がすぐに消すだろうけど。NHK は、自サイトで著作権に反しないような切り張り動画を作れるようにすると、正しく動画を引用して、何かを論じるということが可能になるのだけど。NHKで確かそういう研究していたような気がするが。強制徴収している料金を中国や韓国、あるいは電通とつるんで無駄に使わないで、そうしたことにもっと力を入れればいいのに。ここで話題の話題の崔洋一監督よりも、元、空軍大佐 崔三然氏の【日韓併合談話】日本の謝罪などいらない 韓国保守派の嘆きと憤慨を見て見るか。【鍛冶俊樹】菅談話~元韓国空軍大佐の嘆きと憤慨[桜H22/9/3]でも取り上げられている。崔三然氏の公演は、戦略・情報研 日韓併合100周年 崔三然氏 2,3, 4,5,6,7,8,9,10。ちなみに、Youtube で 1931年の京城(ソウル)の映像 を見つけた。ついでに、【藤岡信勝】「日韓併合百年」の謝罪はいらない[桜H22/7/26]1/4【討論!】日韓併合の真実とこれからの日韓・日朝関係[桜H22/7/24]2/4【討論!】日韓併合の真実とこれからの日韓・日朝関係[桜H22/7/24]3/4【討論!】日韓併合の真実とこれからの日韓・日朝関係[桜H22/7/24]4/4【討論!】日韓併合の真実とこれからの日韓・日朝関係[桜H22/7/24]1/3【韓国併合百年】「首相謝罪談話」を許さない緊急国民集会[桜H22/8/13]2/3【韓国併合百年】「首相謝罪談話」を許さない緊急国民集会[桜H22/8/13]3/3【韓国併合百年】「首相謝罪談話」を許さない緊急国民集会[桜H22/8/13]よく、植民地政策によって言葉を奪われという表現を聞くが、でたらめであることが、朝鮮総督府の発行した教科書などを見ればわかるのだが、言葉を奪われた神話は、むしろ朝鮮半島での話しからよりも、在日朝鮮人が作り出した話なのだろうと思う今日この頃。いくら、ハングルを大衆に普及させたのは実は日本人とかいう話を証拠をいくら出しても無駄なんじゃなかろうかと。つまり、阪神教育闘争50周年集会の記録、阪神教育闘争に学ぶ 民族教育と日本それらの学校は解放後すぐに祖国へ帰国しようとした若者たちが、自分たちが母国語を話せないことに愕然としたことに端を発したと言われています。在日朝鮮人はそれまで日本の同化政策によって、名前を奪われ、言葉を奪われてきました。戦後、GHQ の命令で、日本政府が朝鮮学校の閉鎖を行おうとして衝突が起きた。そもそも、帰国してから朝鮮語を学べば楽だったのにという話はさておき、結局、朝鮮人の一部の人が日本人に同化せずに日本に住み着くために、できるだけ有利な状況を作り出そうとあがいてきた中で生まれたお話なんだろう。ゆえに、朝鮮半島で起きたさまざまな出来事と、戦後の在日韓国・朝鮮人の話とは、かなり切り分けて考えないと、かえって歴史が見えなくなってしまうのかもしれない。戦争が終わったとき、朝鮮半島の朝鮮人が朝鮮語をしゃべれなくなってしまって困りましたなんてことはなかっただろうし。ちなみに、阪神教育闘争の物証 米公文書館にあったらしい。同年4月24日、神戸では大阪の反対闘争に続いて生徒、教師、父母など1万5千名が兵庫県庁近くの公園に集まり、うち数百名が県庁に突入し閉鎖命令を撤回させた。あわてた連合国軍総司令部(GHQ)のマッカーサー元帥は第8軍司令官アイケルバーガー中将に指令し、抗議行動を「暴動」として非常事態宣言を公布し、武力で運動を鎮圧した。結果、1700名あまりが逮捕され、そのうち136名が軍事裁判にかけられた。これが、いわゆる「阪神教育闘争」である。理由は何であれ、「数百名が県庁に突入」って...。それにしても、阪神教育事件 Wikipedia だと、「1590人もしくは7295人[1]が検挙」、「23人を軍事裁判」。逮捕者数や、軍事裁判にかけられた人数のレベルでも、違っている。ずいぶん、話がそれてしまったな。
2010.09.05
コメント(0)
全11件 (11件中 1-11件目)
1

![]()
![]()