2008年07月03日

【wxPython】ボタンを画像にしてみる

ボタンに画像を使ってみます。

以前、画像ファイルを、ウィンドウに表示した時と同じ感じで呼び出して、表示には「BitmapButton」を使います。

試しにJPEG画像を呼び出して、それを画像に貼るという、C++で書くとけっこうな量のコードになりそうなことをやってみました。BITMAPファイルを呼び出す時は、素直にwx.Bitmapで。


Disable時の表示とかどうなるんだろう。次回、調査。


==================================================
# coding: utf-8

import wx

class MwFrame ( wx.Frame ):
  def __init__( self ):
    wx.Frame.__init__( self, None, -1, "Title", size=(200, 100) )
    wx.StaticText( self, -1, u"画像ボタン:", pos=(0, 0) )
    image = wx.Image("test.jpg", wx.BITMAP_TYPE_JPEG).ConvertToBitmap()
    button = wx.BitmapButton(self, -1, image, pos=(50, 0))
    self.Bind( wx.EVT_BUTTON, self.OnSubmit, button )


#以下、略
#省略された部分は、この記事参照
#http://pgyougo.seesaa.net/article/101618058.html

==================================================
WindowsXP SP2
Python2.5.2
wxPython2.8.7.1

wxPython関連記事
posted by MW at 01:15| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

2008年07月02日

【wxPython】モーダルなconfirmダイアログ

YES_NOなモーダルなダイアログを出して、戻り値を受け取ってみる

wx.MessageDialog を 引数に wx.YES_NO を取って呼び出す感じ
呼び出す時は ShowModal()

==================================================
# coding: utf-8

import wx

class MwFrame ( wx.Frame ):
  def __init__( self ):
    wx.Frame.__init__( self, None, -1, "Title", size=(200, 100) )
    button = wx.Button( self, label="submit", pos=(25, 25) )
    self.Bind( wx.EVT_BUTTON, self.OnSubmit, button )

  def OnSubmit( self, event ):
    dlg = wx.MessageDialog( self, 'title', 'message', wx.YES_NO )
    result = dlg.ShowModal()
    if result == wx.ID_YES:
      wx.MessageBox( "YES", "title", wx.OK )
    elif result == wx.ID_NO:
      wx.MessageBox( "NO", "title", wx.OK )
    dlg.Destroy()


#以下、略
#省略された部分は、この記事参照
#http://pgyougo.seesaa.net/article/101618058.html

==================================================
WindowsXP SP2
Python2.5.2
wxPython2.8.7.1

wxPython関連記事
posted by MW at 01:05| Comment(1) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

2008年06月29日

【wxPython】ボタン押下→ダイアログの表示

先回作った、

name : [ text area ]
[ SubmitButton ]

的なものに、ボタンを押したらダイアログが出て、[ text area ]に書き込んだ内容が表示される的な機能を追加する

まず、ボタンにイベントをバインド
self.Bind( wx.EVT_BUTTON, self.OnSubmit, button )

wx.TextCtrlの戻り値をselfでメンバ変数(Pythonの呼び方これだっけ?)に入れて、ダイアログ側で
self.textCtrl.GetValue()

としてあげればOK

==================================================
# coding: utf-8

import wx

class MwFrame ( wx.Frame ):
def __init__( self ):
wx.Frame.__init__( self, None, -1, "Title", size=(200, 100) )
wx.StaticText( self, -1, "name:", pos=(0, 3) )
self.textCtrl = wx.TextCtrl( self, -1, "", pos=(40, 0) )

button = wx.Button( self, label="submit", pos=(25, 25) )
self.Bind( wx.EVT_BUTTON, self.OnSubmit, button )

def OnSubmit( self, event ):
wx.MessageBox( self.textCtrl.GetValue(), "your name", wx.OK )


#以下、略
#省略された部分は、この記事参照
#http://pgyougo.seesaa.net/article/101618058.html

==================================================
WindowsXP SP2
Python2.5.2
wxPython2.8.7.1

wxPython関連記事
posted by MW at 21:19| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

【wxPython】JPEGファイルがこんなに簡単に

Bitmapのファイルは表示したので、今回はJPEGファイルを表示します。


wx.Image( 'test.jpg', wx.BITMAP_TYPE_JPEG )
でJPEGファイルを読み込んで

ConvertToBitmap()
でBITMAPに変換する感じで出すようです

驚くほど簡単だ
ライブラリは何使ってるんだろ

==================================================
# coding: utf-8

import wx

class MwFrame ( wx.Frame ):
  def __init__(self):
    wx.Frame.__init__(self, None, -1, "Title", size=(200, 100))
    img = wx.Image( 'test.jpg', wx.BITMAP_TYPE_JPEG ).ConvertToBitmap()
    wx.StaticBitmap( self, -1, img )

#以下、略
#省略された部分は、この記事参照
#http://pgyougo.seesaa.net/article/101618058.html

==================================================
WindowsXP SP2
Python2.5.2
wxPython2.8.7.1

wxPython関連記事
posted by MW at 14:19| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

【wxPython】画像を表示する

先回まで文字を表示していたので、今回は画像を。
画像はwx.Bitmapで作って、StaticBitmapで表示します。

ちゃんとソース見てないから嘘かもしれないけど、LoadBitmapして、BitBltする感じかなぁと勝手に思ってます?

===========================================
# coding: utf-8

import wx

class MwFrame ( wx.Frame ):
  def __init__(self):
    wx.Frame.__init__(self, None, -1, "Title", size=(200, 100))
    img = wx.Bitmap( 'test.bmp' )
    wx.StaticBitmap( self, -1, img )

#以下、略
#省略された部分は、この記事参照
#http://pgyougo.seesaa.net/article/101618058.html

==================================================
WindowsXP SP2
Python2.5.2
wxPython2.8.7.1

wxPython関連記事
posted by MW at 01:54| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

2008年06月28日

【wxPython】ハイパーリンクっぽい文字を出す

今回は文字の色を青にして、下線引いて、ついでに太字にする

==================================================
# coding: utf-8

import wx

class MwFrame ( wx.Frame ):
  def __init__(self):
    wx.Frame.__init__(self, None, -1, "Title", size=(200, 100))
    self.SetBackgroundColour('white')
    moji = wx.StaticText( self, -1, u"how low", pos=(5, 0) )
    moji.SetForegroundColour('blue')
    moji.SetFont(
      wx.Font( 12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, 
               wx.FONTWEIGHT_BOLD, 1 ) )



#以下、略
#省略された部分は、この記事参照
#http://pgyougo.seesaa.net/article/101618058.html

==================================================
WindowsXP SP2
Python2.5.2
wxPython2.8.7.1

wxPython関連記事
posted by MW at 01:42| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

【wxPython】Staticテキストの色を個別に変える

さー、次行ってみよう
次は文字の色をそれぞれ別の色に変える方法

--------------×
|hello
|good-bye
|
---------------

これの、helloを青色、good-byeを黄色にしてみます

==================================================
# coding: utf-8

import wx

class MwFrame ( wx.Frame ):
  def __init__(self):
    wx.Frame.__init__(self, None, -1, "Title", size=(200, 100))
    moji1 = wx.StaticText(self, -1, u"hello", pos=(5, 0))
    moji1.SetForegroundColour('blue')
    moji2 = wx.StaticText(self, -1, u"good-by", pos=(5, 15))
    moji2.SetForegroundColour('yellow')


#以下、略
#省略された部分は、この記事参照
#http://pgyougo.seesaa.net/article/101618058.html

==================================================
WindowsXP SP2
Python2.5.2
wxPython2.8.7.1

wxPython関連記事
posted by MW at 01:10| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

【wxPython】文字の場所を設定

この目が貴方を知らなければ、しなくていい努力があったよ

というわけで、今回は文字の配置をPos設定して、複数並べてみる

--------------×
| hello
| good-bye
|
---------------

こんな感じで表示されることになる

==================================================
# coding: utf-8

import wx

class MwFrame ( wx.Frame ):
  def __init__(self):
    wx.Frame.__init__(self, None, -1, "Title", size=(200, 100))
    wx.StaticText(self, -1, u"hello", pos=(5, 0))
    wx.StaticText(self, -1, u"good-by", pos=(5, 15))



#以下、略
#省略された部分は、この記事参照
#http://pgyougo.seesaa.net/article/101618058.html

==================================================
WindowsXP SP2
Python2.5.2
wxPython2.8.7.1

wxPython関連記事
posted by MW at 01:00| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

【wxPython】文字の色を変える

今日も今日とて、wxPython。今週末は嫌がらせのように大量の記事を載せてやろう。アクセス解析見たら、土日は見てる人少ないみたいだし、問題ないだろう。

で、文字の色の変え方。

「self.SetBackgroundColour("white")」と書いてあるのを見れば、普通に思いつくような記述だけど、こんな感じ

==================================================
# coding: utf-8

import wx

class MwFrame ( wx.Frame ):
  def __init__(self):
    wx.Frame.__init__(self, None, -1, "Title", size=(200, 100))
    self.SetForegroundColour(wx.Colour(0, 127, 127))
    self.SetBackgroundColour("white")
    wx.StaticText(self, -1, u"さようなら、世界")

#以下、略
#省略された部分は、この記事参照
#http://pgyougo.seesaa.net/article/101618058.html

==================================================
WindowsXP SP2
Python2.5.2
wxPython2.8.7.1

wxPython関連記事
posted by MW at 00:36| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

2008年06月27日

【wxPython】ウィンドウの背景色を変える

さっき投稿したヤツだと、背景が灰色でアレだったので、白背景にする。

記述は簡単で、
self.SetBackgroundColour("white")
を入れるだけ

背景塗るだけでHBRUSHとか言ったり、デストラクタで消さないといけなかったりしないといけないような言語とかがもし実在したら、とても疲れるので、このくらい簡単な記述で済むのはとてもありがたいことだと思うた。

あと、こんな書き方でも、同じく背景白になる
self.SetBackgroundColour(wx.Colour(255, 255, 255))

==================================================
# coding: utf-8

import wx

class MwFrame ( wx.Frame ):
  def __init__(self):
    wx.Frame.__init__(self, None, -1, "Title", size=(200, 100))
    self.SetBackgroundColour("white")
    wx.StaticText(self, -1, u"さようなら、世界")

class MwApp( wx.App ):
  def OnInit( self ):
    frame = MwFrame( )
    frame.Show( True )
    return True

app = MwApp( )
app.MainLoop( )

==================================================
WindowsXP SP2
Python2.5.2
wxPython2.8.7.1

wxPython関連記事
posted by MW at 01:05| Comment(3) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

【wxPython】さようなら世界な画面

今日、wxPythonでググったら(日本語検索)、10件目くらいにうちのブログが来ていた。大丈夫なのか、もうダメなのか、wxPython。


まぁ、その辺の空気は読まずに、今日も僅かなコードをWEBの世界に捧げる。


とりあえず、ウィンドウに「さようなら、世界」と出す。STATICコントロールなテキスト。おそらく裏側でCreateWindow("STATIC","さようなら、世界",WS_CHILD|WS_VIS・・・的なことをしているのでせう


==================================================
# coding: utf-8

import wx

class MwFrame ( wx.Frame ):
  def __init__(self):
    wx.Frame.__init__(self, None, -1, "Title", size=(200, 100))
    wx.StaticText(self, -1, u"さようなら、世界")

class MwApp( wx.App ):
  def OnInit( self ):
    frame = MwFrame( )
    frame.Show( True )
    return True

app = MwApp( )
app.MainLoop( )

==================================================
WindowsXP SP2
Python2.5.2
wxPython2.8.7.1

wxPython関連記事
posted by MW at 00:46| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

2008年06月26日

【wxPython】クラス化

さすがに面倒になってきたので、AppとFrameをクラス化する
物凄く最低限の構成
ただWindowが出るだけの状態に戻る

あと、環境くらい書いておくことにする

==================================================
# coding: utf-8

import wx

class MwFrame ( wx.Frame ):
  pass

class MwApp( wx.App ):
  def OnInit( self ):
    frame = MwFrame( None, -1, "Title" )
    frame.Show( True )
    return True

app = MwApp( )
app.MainLoop( )
==================================================
WindowsXP SP2
Python2.5.2
wxPython2.8.7.1

wxPython関連記事
posted by MW at 00:03| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

2008年06月25日

【wxPython】MB_OKなダイアログを出す

今度の工人舎は低価格ではなく十万馬力で勝負だそうな


それは良いとして、wxPython
今回はメニューの項目を選ぶとMB_OKなダイアログが出るようにしました


wxPythonを使っていると、いつこれが無駄な労力に代わるのかヒヤヒヤ出来ます
やっぱ、Tkinterにすべきか・・・悩む・・・


==================================================
# coding: utf-8

import wx

#ダイアログ出す
def OnDialog( evt ):
wx.MessageBox("message", "title", wx.OK)


#ウィンドウ閉じる
def OnClose( evt ):
wx.Exit()


app = wx.PySimpleApp( )
frame = wx.Frame(None, -1, "Window Title")
app.SetTopWindow( frame )

menu = wx.Menu()

#ダイアログ出すメニュー
ID_DIALOG = wx.NewId()
menu.Append( ID_DIALOG, u"だいあろぐ(&D)", "Show dialog" )


#ウィンドウ閉じるメニュー
ID_CLOSE = wx.NewId()
menu.Append( ID_CLOSE, u"いくじっと(&E)", "Exit Program" )

menuBar = wx.MenuBar()
menuBar.Append( menu, "&File" )
frame.SetMenuBar ( menuBar )

#メニューイベントをバインド
frame.Bind( wx.EVT_MENU, OnDialog, id=ID_DIALOG )
frame.Bind( wx.EVT_MENU, OnClose, id=ID_CLOSE )

frame.Show( True )
app.MainLoop( )
posted by MW at 00:12| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

2008年06月24日

【wxPython】日本語を使う

ヤフー(米)を見てたら、こんな記事がありました

Softbank to sell iPhone for $215 in Japan
http://news.yahoo.com/s/ap/20080623/ap_on_hi_te/tec_japan_iphone;_ylt=Akk90MCHELLTTPBmiGddNgUjtBAF


さすがアイフォーン(日本名)、向こうでも話題になる
ところでアイフォーンって、いくらカタカナ表記でそう書いても、みんなiPhoneって書くし、発音もそっちになると思うのだけど


というわけで、今日のwxPythonのソース
日本語書けない状態だったから、書けるようにしました
codingでutf-8を指定して、あとは文字列の前にuを付ける
それだけです

L"ワイドキャラ"とか書くのに慣れてきたので違和感はだいぶ薄れたけど、やはりuって書くのはイマイチだなぁ
もうマルチバイトは無しで

========================================
# coding: utf-8

import wx

def OnClose( evt ):
wx.Exit()

app = wx.PySimpleApp( )
frame = wx.Frame(None, -1, "Window Title")
app.SetTopWindow( frame )

#konohen menu
menu = wx.Menu()
ID_CLOSE = wx.NewId()
menu.Append( ID_CLOSE, u"いくじっと(&E)", "Exit Program" )
menuBar = wx.MenuBar()
menuBar.Append( menu, "&File" )
frame.SetMenuBar ( menuBar )

frame.Bind( wx.EVT_MENU, OnClose, id=ID_CLOSE )

frame.Show( True )
app.MainLoop( )
posted by MW at 01:29| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

2008年06月22日

【wxPython】閉じるイベントを付けてみた

雨が凄い日の休日って、みんな何して過ごすのだろうということを考えながら、私はほぼ1日眠って過ごしておりました


wxPythonのドキュメントは、正直、少ない
しかも途中で仕様が変わった為に、昔のバージョンのサンプルを見ても役に立たない
ついでに公式ページのNewsは2007年11月で停まっている


まぁ、それでも最悪ソースを読めば分かることだから良いのだけど、問題はwxWidgetsの更新がちゃんと続けられるか、この部分だけが不安材料かな、と

===============================================
import wx

def OnClose( evt ):
wx.Exit()

app = wx.PySimpleApp( )
frame = wx.Frame(None, -1, "Window Title")
app.SetTopWindow( frame )

#konohen menu
menu = wx.Menu()
ID_CLOSE = wx.NewId()
menu.Append( ID_CLOSE, "E&xit", "Exit Program" )
menuBar = wx.MenuBar()
menuBar.Append( menu, "&File" )
frame.SetMenuBar ( menuBar )

frame.Bind( wx.EVT_MENU, OnClose, id=ID_CLOSE )

frame.Show( True )
app.MainLoop( )
posted by MW at 19:18| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

2008年06月21日

【wxPython】メニューを出す

今日は、派遣とかひぐらしとかってマリリン・マンソンくらいに問題の根本から外れてるけど、本気で言ってる人もいるのだろうかという話を酔っ払って真面目にしてしまったことに対する自責の念を振り払う為に、帰宅後はwxPythonのソースを見て和んでいました

あー、なごむ

そういえば江戸川乱歩の小説とかってけっこうエグいけど、昔はアレがスケープゴートにされることもあったのだろうか


というわけで、wxPython
今日はメニューを出しました

出しただけ

==================================================
import wx
app = wx.PySimpleApp( )
frame = wx.Frame(None, -1, "Window Title")
app.SetTopWindow( frame )

#konohen menu
menu = wx.Menu()
menu.Append( 100, "E&xit", "Exit Program" )
menuBar = wx.MenuBar()
menuBar.Append( menu, "&File" )
frame.SetMenuBar ( menuBar )

frame.Show( True )
app.MainLoop( )
==================================================
posted by MW at 00:08| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

2008年06月20日

【wxPython】ステータスバーの表示

さて、性懲りも無くwxPython
今回はWindowにステータスバーを付ける

==================================================
import wx
app = wx.PySimpleApp( )
frame = wx.Frame(None, -1, "Window Title")
app.SetTopWindow( frame )

#koko tsuika
statusBar = frame.CreateStatusBar()
statusBar.SetStatusText( "statusbar text" )

frame.Show( True )
app.MainLoop( )
==================================================
posted by MW at 00:51| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

2008年06月18日

wxPythonのこと

さて、昨日、ニュースや用語以外に何か書くと言ったので、
試しにwxPythonのことでもちまちまと書いてみようか。

物凄く需要はなさそうだけど、まぁ、いいか。


■wxPythonとは
説明1.Tkinterのライバル
説明2.wxWidgetsのPython用
説明3.Python用GUIツールキット

■Pythonダウンロード
http://www.python.jp/Zope/download/pythoncore

■wxPythonダウンロード
http://sourceforge.net/project/showfiles.php?group_id=10718

■シンプルなWindowを出すサンプル
import wx
app = wx.PySimpleApp( )
frame = wx.Frame( None, -1, "Window Title" )
app.SetTopWindow( frame )
frame.Show( True )
app.MainLoop( )
posted by MW at 23:16| Comment(0) | TrackBack(0) | wxPython | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。