SlideShare a Scribd company logo
wxPython入門
増田 (@whosaysni)
自己紹介
•  増田 泰 (@whosaysni)
•  Google+ つかってません
•  GitHub<<<BitBucket
•  某バイオベンチャー勤務
•  ドキュメント翻訳とかDjango本とか
•  一般社団法人PyConJP理事
•  PyConJPきてください 9/13-15
•  http://2014.pycon.jp/
wxPython
•  GUIライブラリ
•  wxWidgetsのPythonラッパー
•  SWIG使ってる
•  各OSのGUIコンポーネントを使う
•  OSXならCocoa
•  Windowsならwin32
•  LinuxならGTK
•  wxWidgetsライセンス
•  条文はLGPL2だが、バイナリの配布時に独自
の使用許諾ができる例外条項がある
まずは基本
GUIプログラム
•  シェルで起動
•  操作(イベント)に合わせてハ
ンドラが呼ばれる
•  ハンドラがUIコンポーネントを
操作する
•  次のイベント待ち
GUIプログラミングって?
スクリプト
•  シェルで起動
•  処理を逐次実行
•  最後の処理を終えたら終了
•  シェルに制御を戻す
Webフレームワーク
•  Webサーバが起動
•  リクエストに合わせて
ハンドラが呼ばれる
•  ハンドラがレスポンス返す
•  次のリクエスト待ち
ディス
パッチ	
ハンドラ	
ビュー
操作	
イベント
ループ
ウィジェット Widget
•  ボタンとかウィンドウとか、画面の構成要素
•  UIを実際に描画する(自動的にね)
•  ユーザ操作に応じてイベントを生成する
•  wxPython/wxWidget
•  ほとんどのウィジェットがクラスで階層化
wxObject	
 ...	
 wxWindow	
wxControl	
wxBu4on	
wxSta7cText	
wxMenu	
...	
wxPanel	
wxTopLevelWindow	
wxFrame	
wxDialog
イベントループ
while len(event_q):
ev = event_q.pop()
handler = dispatch(ev)
if handler:
handler(ev)
イベントキュー	
イベントループロジック	
GUI操作	
その他	
  
イベント	
イベントハンドラ	
イベントハンドラ	
イベントハンドラ	
たいていのGUIフレームワークには、
・イベントループを実行する関数
・ハンドラを登録する関数
があり、(1)ハンドラを定義して(2)ディ
スパッチャに登録し、(3)イベントルー
プを呼ぶようになっている。
wxPythonのイベントループ
>>> import wx
>>> app = wx.App() # Appインスタンス
>>> frame = wx.Frame(None) # ウィンドウつくる
>>> app.SetTopWindow(frame)
>>> frame.Show(True)
True
>>> app.MainLoop() # ここがメインループ
(ループ中。ウィンドウ閉じるまで戻りませんw)
アプリは wxApp() をサブクラス化する
# coding: utf-8
import wx
class MyApp(wx.App):
def OnInit(self): #Appインスタンス生成時に呼び出される
self.frame = wx.Frame(None) # 何でも属性にできる。Python最高ヤッホウ
self.frame.SetTitle(u'よろしくwxさん')
self.SetTopWindow(self.frame)
self.frame.Show(True)
return True # お約束。重要
if __name__=='__main__':
app = MyApp()
app.MainLoop()
GUIのレイアウト
GUIのレイアウト
•  ウィジェットをウィンドウのどこに配置するか
•  位置(x, y)と大きさ(w, h)
•  配置(右寄せ、左寄せ)
•  伸長(ウィンドウに合わせてサイズ変更)
•  グループ化(OK/Cancelボタンとか)
•  wxWidgetsでは、Sizerオブジェクトがレイアウ
トを制御する
•  ウィンドウにSizerを登録する
BoxSizer()があれば無問題!だと思う
硬派のSizer道(嘘)
BoxSizer
wx.BoxSizer(wx.VERTICAL)
wx.BoxSizer(wx.HORIZONTAL)
v_box = wx.BoxSizer(wx.VERTICAL)
v_box.Add(widget_A)
v_box.Add(widget_B)
h_box = wx.BoxSizer(wx.HORIZONTAL)
h_box.Add(v_box)
h_box.Add(widget_C)
VERTICAL	
HORIZONTAL	
C	
A	
B
BoxSizer
def OnInit(self):
...
label = wx.StaticText(
self.frame, -1, u'ボタン三兄弟', style=wx.ALIGN_CENTER)
btn_1 = wx.Button(self.frame, -1, u'ボタン長男')
btn_2 = wx.Button(self.frame, -1, u'ボタン次男 ')
btn_3 = wx.Button(self.frame, -1, u'ボタン三男')
sizer = wx.BoxSizer(wx.VERTICAL)
btn_sizer = wx.BoxSizer(wx.HORIZONTAL)
btn_sizer.Add(btn_1, 3, wx.ALL¦wx.EXPAND, 30)
btn_sizer.Add(btn_2, 2, wx.ALL¦wx.EXPAND, 20)
btn_sizer.Add(btn_3, 1, wx.ALL¦wx.EXPAND, 10)
sizer.Add(label, 0, wx.ALL¦wx.EXPAND, 50)
sizer.Add(btn_sizer, 0, wx.ALL¦wx.EXPAND, 0)
self.frame.SetSizer(sizer)
self.frame.Fit()
50	
50	
50	
 30	
30	
30	
20	
20	
10	
10	
10	
20	
 20	
(上揃え)
イベント処理
おさらい
イベントキュー	
イベントループロジック	
GUI操作	
その他	
  
イベント	
イベントハンドラ	
イベントハンドラ	
イベントハンドラ	
GUIプログラム
•  シェルで起動
•  操作(イベント)に合わせてハ
ンドラが呼ばれる
•  ハンドラがUIコンポーネントを
操作する
•  次のイベント待ち
ディス
パッチ	
ハンドラ	
ビュー
操作	
イベント
ループ
イベントハンドラはどこにでも書ける
def event_handler(evt): #普通の関数
...
•  evt: イベントオブジェクト
•  イベントの種類
•  パラメタ(マウス座標など)
•  その他、発生元のウィジェットなどの情報
•  wx.Appのメソッドとして書くのがいい
•  evtから他の変数引っ張るの大変
•  詳しくはあとで
イベントをハンドラに結びつける
ウィジェットの Bind() メソッドをつかう
例: widget.Bind(wx.EVT_MOUSE, handler)
•  この操作で、
•  「widget」が
•  「マウスイベント」を受け取ると
•  handler を呼び出す
•  アプリのインスタンスメソッドの場合
•  def handler(self, evt): ...
•  self.bind(wx.EVT_MOUSE, self.handler)
ハンドラの中でウィジェットを操作する
def OnInit(self):
...
self.btn = wx.Button(self.frame, -1, u'押さないで')
self.btn.Bind(wx.EVT_BUTTON, self.OnOsunaPressed)
def OnOsunaPressed(self, evt):
self.btn.SetLabel(u'マジで'+self.btn.GetLabel())
self.frame.Fit()
tips
アプリケーションの参照をとる
•  Appクラスに変数置いてるんだけど。
 →いいね!
•  モジュール変数使って渡していい? ダメです
•  ウィンドウにAppのインスタンス渡す?ダメ
_人人人人人人人_
> wx.GetApp() <
 ̄Y^Y^Y^Y^Y^Y ̄
実例はあとで
大きなアプリを書くとき
•  ウィンドウやダイアログがたくさんある
•  ウィンドウごとにモジュールを作る
•  wx.Dialogやwx.Frameをサブクラス化する
ほとんどのウィジェットをPurePythonでサブクラス化OK!
Python完全勝利(S)!
•  ウィンドウ固有の処理はモジュールに押し込める
•  モジュールの if __module__==__main__ で
wx.App を作ってアプリ化する
これで、画面構成モジュール単位で開発できます!
MVC的な住み分け
•  Model
基本、Appインスタンス経由で参照する
•  Controller
ビジネスロジックはAppインスタンス
ウィジェットの細かい操作が多ければ
別モジュールに書く
テストの住み分け的にも大事
•  View
ウィジェットに複雑なデフォルト設定を
したいなら別モジュールに書くのがいい
ダメじゃないけどダメな例
(app.py)
def OnInit(self):
self.main_window = wx.Frame(....)
self.main_window_root_pane = wx.Panel(...)
self.main_window_sizer = wx.BoxSizer(...)
self.main_window_sizer.Add(self.main_window_root_pane)
self.main_window.SetSizer(self.main_window_sizer)
self.main_window_lr_sizer = wx.BoxSizer(...)
self.main_window_left_pane = ...
....
いい感じな例
(app.py)
import wx
from main_window import MainWindow
class MyApp(wx.App):
def OnInit(self):
self.main_window = MainWindow(...)
self.SetTopWindow(self.main_window)
...
self.main_window.some_method(...)
...
return True
def on_main_window_submit(self, evt):
...
(main_window.py)
import wx
class MainWindow(wx.Frame):
def __init__(self, *args, **kw):
wx.Frame.__init__(self, *args, **kw)
self.root_pane = wx.Panel(...)
self.sizer = wx.BoxSizer(...)
...
self.Bind(SOMEEVENT,
self.app.on_main_window_submit)
@property
def app(self):
return wx.GetApp()
def some_method(self, ...)
... do something ...
こっちは	
  
プレゼンテーション寄り	
こっちは	
ビジネスロジック寄り	
  
いい感じな例
(app.py)
import wx
from main_window import MainWindow
class MyApp(wx.App):
def OnInit(self):
self.main_window = MainWindow(...)
self.SetTopWindow(self.main_window)
...
self.main_window.some_method(...)
...
return True
def on_main_window_submit(self, evt):
...
(main_window.py)
import wx
class MainWindow(wx.Frame):
def __init__(self, *args, **kw):
wx.Frame.__init__(self, *args, **kw)
self.root_pane = wx.Panel(...)
self.sizer = wx.BoxSizer(...)
...
self.Bind(SOMEEVENT,
self.app.on_main_window_submit)
@property
def app(self):
return wx.GetApp()
def some_method(self, ...)
... do something ...
こっちは	
  
プレゼンテーション寄り	
こっちは	
ビジネスロジック寄り	
  
モジュールのモック化
(main_window.py)
import wx
class MainWindow(wx.Frame):
def __init__(self, *args, **kw):
wx.Frame.__init__(self, *args, **kw)
self.root_pane = wx.Panel(...)
self.sizer = wx.BoxSizer(...)
...
self.Bind(SOMEEVENT,
self.app.on_main_window_submit)
@property
def app(self):
return wx.GetApp()
...
(続く)
(続き)
...
# ここからモック駆動用コード
if __name__== __main__ :
class DemoApp(wx.App):
def on_main_window_submit(self, evt):
... do some nothing ...
...
# モックアプリを作って走らせる
app = DemoApp()
w = MainWindow(None)
app.main_window = w
app.SetTopWindow(w)
app.MainLoop()
「ホホウ。もう出来てるじゃないか。じゃあ工数減ら
して見積り再提出してもらえんかね」とお客様に言
われても当方は一切責任をもちません
おすすめツール
•  wxPython Demo
http://www.wxpython.org/download.php
Demoを見れば大抵のウィジェットは使える
•  Dash
https://itunes.apple.com/jp/app/dash-docs-
snippets/id458034879?mt=12
wxWidets のドキュメントがあります
enjoy!

More Related Content

What's hot

ABI란 무엇인가요?
ABI란 무엇인가요?ABI란 무엇인가요?
ABI란 무엇인가요?진상 문
 
Angular.ppt
Angular.pptAngular.ppt
Angular.ppt
Mytrux1
 
nginx入門
nginx入門nginx入門
nginx入門
Takashi Takizawa
 
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano
 
イマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターンイマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターン
seiichi arai
 
Oracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみるOracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみる
オラクルエンジニア通信
 
基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroid基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroid
demuyan
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
 
Djangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組みDjangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組み
Shinya Okano
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
 
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~
Kenji Shirane
 
Azure上の データベース 機能の選び方。KVSからDWHまで
Azure上の データベース 機能の選び方。KVSからDWHまでAzure上の データベース 機能の選び方。KVSからDWHまで
Azure上の データベース 機能の選び方。KVSからDWHまで
Daisuke Masubuchi
 
がんばれ PHP Fiber
がんばれ PHP Fiberがんばれ PHP Fiber
がんばれ PHP Fiber
infinite_loop
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門demuyan
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
 
モダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとはモダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとは
Takuya Tejima
 
自宅ネットワーク構築
自宅ネットワーク構築自宅ネットワーク構築
自宅ネットワーク構築
asuka y
 
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会真乙 九龍
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
akira6592
 
目grepのはなし
目grepのはなし目grepのはなし
目grepのはなし
祥之 山根
 

What's hot (20)

ABI란 무엇인가요?
ABI란 무엇인가요?ABI란 무엇인가요?
ABI란 무엇인가요?
 
Angular.ppt
Angular.pptAngular.ppt
Angular.ppt
 
nginx入門
nginx入門nginx入門
nginx入門
 
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
 
イマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターンイマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターン
 
Oracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみるOracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみる
 
基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroid基礎から学ぶ組み込みAndroid
基礎から学ぶ組み込みAndroid
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
Djangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組みDjangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組み
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
 
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~
 
Azure上の データベース 機能の選び方。KVSからDWHまで
Azure上の データベース 機能の選び方。KVSからDWHまでAzure上の データベース 機能の選び方。KVSからDWHまで
Azure上の データベース 機能の選び方。KVSからDWHまで
 
がんばれ PHP Fiber
がんばれ PHP Fiberがんばれ PHP Fiber
がんばれ PHP Fiber
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
モダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとはモダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとは
 
自宅ネットワーク構築
自宅ネットワーク構築自宅ネットワーク構築
自宅ネットワーク構築
 
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
 
目grepのはなし
目grepのはなし目grepのはなし
目grepのはなし
 

Similar to wxPython入門(大阪Pythonユーザの集まり2014/03)

今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Wataru NOGUCHI
 
Hubotを使ってbotをつくろう!
Hubotを使ってbotをつくろう!Hubotを使ってbotをつくろう!
Hubotを使ってbotをつくろう!
Daisuke Kikuchi
 
ゲームツクール!第11回 エディター拡張してみよう
ゲームツクール!第11回 エディター拡張してみようゲームツクール!第11回 エディター拡張してみよう
ゲームツクール!第11回 エディター拡張してみよう
ゲームツクール!
 
DOMイベントの基礎から深淵まで
DOMイベントの基礎から深淵までDOMイベントの基礎から深淵まで
DOMイベントの基礎から深淵まで
Masayuki Nakano
 
Extending the Unity Editor Extended
Extending the Unity Editor ExtendedExtending the Unity Editor Extended
Extending the Unity Editor ExtendedMasamitsu Ishikawa
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜
Yusuke SAITO
 
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfesTakeshi Komiya
 
Titanium勉強会
Titanium勉強会Titanium勉強会
Titanium勉強会
洋平 前田
 
ARコンテンツ作成勉強会:Myoを用いたVRコンテンツ開発
ARコンテンツ作成勉強会:Myoを用いたVRコンテンツ開発ARコンテンツ作成勉強会:Myoを用いたVRコンテンツ開発
ARコンテンツ作成勉強会:Myoを用いたVRコンテンツ開発
Takashi Yoshinaga
 
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hackyut148atgmaildotcom
 
QtでHello, World!!
QtでHello, World!!QtでHello, World!!
QtでHello, World!!
treby
 
iOS 8 Widget ~ 導入から Tips まで
iOS 8 Widget ~ 導入から Tips までiOS 8 Widget ~ 導入から Tips まで
iOS 8 Widget ~ 導入から Tips までYuki Tanabe
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Ransui Iso
 
Tizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたTizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたNaruto TAKAHASHI
 
Houdini 製品概要
Houdini 製品概要 Houdini 製品概要
Houdini 製品概要
Ken Taki
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
Daisuke Miyakawa
 
HoloLensハンズオン:AirTap & SpatialMapping編
HoloLensハンズオン:AirTap & SpatialMapping編HoloLensハンズオン:AirTap & SpatialMapping編
HoloLensハンズオン:AirTap & SpatialMapping編
Takashi Yoshinaga
 
Media Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用するMedia Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用するAtsushi Tadokoro
 
デザイナーと一緒にコラボして仕上げるアニメーション実装とショーケース紹介
デザイナーと一緒にコラボして仕上げるアニメーション実装とショーケース紹介 デザイナーと一緒にコラボして仕上げるアニメーション実装とショーケース紹介
デザイナーと一緒にコラボして仕上げるアニメーション実装とショーケース紹介
Fumiya Sakai
 

Similar to wxPython入門(大阪Pythonユーザの集まり2014/03) (20)

今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
 
Hubotを使ってbotをつくろう!
Hubotを使ってbotをつくろう!Hubotを使ってbotをつくろう!
Hubotを使ってbotをつくろう!
 
ゲームツクール!第11回 エディター拡張してみよう
ゲームツクール!第11回 エディター拡張してみようゲームツクール!第11回 エディター拡張してみよう
ゲームツクール!第11回 エディター拡張してみよう
 
DOMイベントの基礎から深淵まで
DOMイベントの基礎から深淵までDOMイベントの基礎から深淵まで
DOMイベントの基礎から深淵まで
 
Extending the Unity Editor Extended
Extending the Unity Editor ExtendedExtending the Unity Editor Extended
Extending the Unity Editor Extended
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜
 
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
 
Titanium勉強会
Titanium勉強会Titanium勉強会
Titanium勉強会
 
ARコンテンツ作成勉強会:Myoを用いたVRコンテンツ開発
ARコンテンツ作成勉強会:Myoを用いたVRコンテンツ開発ARコンテンツ作成勉強会:Myoを用いたVRコンテンツ開発
ARコンテンツ作成勉強会:Myoを用いたVRコンテンツ開発
 
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
 
QtでHello, World!!
QtでHello, World!!QtでHello, World!!
QtでHello, World!!
 
iOS 8 Widget ~ 導入から Tips まで
iOS 8 Widget ~ 導入から Tips までiOS 8 Widget ~ 導入から Tips まで
iOS 8 Widget ~ 導入から Tips まで
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
Code ignitertalk 01
Code ignitertalk 01Code ignitertalk 01
Code ignitertalk 01
 
Tizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたTizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えた
 
Houdini 製品概要
Houdini 製品概要 Houdini 製品概要
Houdini 製品概要
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
 
HoloLensハンズオン:AirTap & SpatialMapping編
HoloLensハンズオン:AirTap & SpatialMapping編HoloLensハンズオン:AirTap & SpatialMapping編
HoloLensハンズオン:AirTap & SpatialMapping編
 
Media Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用するMedia Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用する
 
デザイナーと一緒にコラボして仕上げるアニメーション実装とショーケース紹介
デザイナーと一緒にコラボして仕上げるアニメーション実装とショーケース紹介 デザイナーと一緒にコラボして仕上げるアニメーション実装とショーケース紹介
デザイナーと一緒にコラボして仕上げるアニメーション実装とショーケース紹介
 

More from 泰 増田

PlaySQLAlchemyORM2017.key
PlaySQLAlchemyORM2017.keyPlaySQLAlchemyORM2017.key
PlaySQLAlchemyORM2017.key
泰 増田
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
 
SQLAlchemy Primer
SQLAlchemy PrimerSQLAlchemy Primer
SQLAlchemy Primer
泰 増田
 
Taming robotframework
Taming robotframeworkTaming robotframework
Taming robotframework
泰 増田
 
Open bio2004 biopython
Open bio2004 biopythonOpen bio2004 biopython
Open bio2004 biopython
泰 増田
 
Python languageupdate (2004)
Python languageupdate (2004)Python languageupdate (2004)
Python languageupdate (2004)
泰 増田
 
Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)
泰 増田
 
Django boodoo
Django boodooDjango boodoo
Django boodoo
泰 増田
 

More from 泰 増田 (8)

PlaySQLAlchemyORM2017.key
PlaySQLAlchemyORM2017.keyPlaySQLAlchemyORM2017.key
PlaySQLAlchemyORM2017.key
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
SQLAlchemy Primer
SQLAlchemy PrimerSQLAlchemy Primer
SQLAlchemy Primer
 
Taming robotframework
Taming robotframeworkTaming robotframework
Taming robotframework
 
Open bio2004 biopython
Open bio2004 biopythonOpen bio2004 biopython
Open bio2004 biopython
 
Python languageupdate (2004)
Python languageupdate (2004)Python languageupdate (2004)
Python languageupdate (2004)
 
Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)Robot Framework (のSelenium2Libraryのお話)
Robot Framework (のSelenium2Libraryのお話)
 
Django boodoo
Django boodooDjango boodoo
Django boodoo
 

Recently uploaded

FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 

Recently uploaded (16)

FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 

wxPython入門(大阪Pythonユーザの集まり2014/03)