[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ソースは長いのでPyQtのサンプルを置くページからPyQt-SAMPLE4.zipをダウンロードしてください。
PyQt-SAMPLE4.pywがサンプルプログラムです。
ボタン1を押したら[1, 0]、ボタン2を押したら[0,1]を出力するTimedLongSeqの型のアウトポートを持ってます。
作り方としては、
- RTCBuilderでTimedLongSeqのアウトポートを持つコンポーネントを作成
- from PyQt4 import QtCore, QtGui のようにPyQtをインポート
- サンプルの OUT=[0,0] のように関数の外に変数を作成
- OnButton1 のようにOUT[0]の値を変える関数をダイアログのクラスに定義
- self.button1.clicked.connect(self.OnButton1) のように button1 が押されたら OnButton1 を実行するようにする
- onExcute で self._d_button.data = OUT、self._buttonOut.write() のようにOUTを出力する
- OUTが変化したときのみ出力するようにする。
- main内で app = QtGui.QApplication(sys.argv)、dialog = Dialog()、sys.exit(dialog.exec_()) と記述
- mgr.runManager(True) ←ここ重要
まあ、こんなところ。
今回の開発環境は、OpenRTM-aist-Python-1.0.0-RC1です。
0.4.2では動作しません。
次回は本格的に使えそうなコンポーネントを作成します。
何作ろうかな。
とりあえず動作確認コンポーネントをつくります。
デザインは現在思考中。
多分次の更新は3日以上先になると思います。
にほんブログ村の
Pythonのカテゴリ
現在参加人数1人・・・
今回はオブジェクト化をやります。
ソースは以下の通りです。
from PyQt4 import QtCore, QtGui
#PyQtのインポートは必須
import sys
class Dialog(QtGui.QDialog):
def __init__(self, parent=None):
super(Dialog, self).__init__(parent)
self.mainLayout = QtGui.QVBoxLayout()
self.button1 = QtGui.QPushButton("Button 1")
self.mainLayout.addWidget(self.button1)
self.button1.clicked.connect(self.SetButton)
self.button2 = QtGui.QPushButton("Button 2")
self.mainLayout.addWidget(self.button2)
self.setLayout(self.mainLayout)
self.setWindowTitle("SAMPLE3")
self.setMinimumSize(200, 200)
self.count = 3
def SetButton(self):
addbutton = QtGui.QPushButton("Button %d" % self.count)
self.mainLayout.addWidget(addbutton)
self.count += 1
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
dialog = Dialog()
sys.exit(dialog.exec_())
ここからダウンロードできます。
今度はボタンが押しただけ分裂します。
オブジェクト化した方がわかりやすい・・・・と思うよ?
次回はPyQtで作ったGUIをRTコンポーネント化してみます。
にほんブログ村の
Pythonのカテゴリ
現在参加人数1人・・・
では今回はボタンを押すとアクションを起こすようにします。
ボタンを押すと、ボタンが増えます。
以下サンプルです
from PyQt4 import QtCore, QtGui
#PyQtのインポートは必須
import sys
#これは必ず必須
app = QtGui.QApplication(sys.argv)
#ダイアログ作成
dialog = QtGui.QDialog()
#レイアウトの作成、QVは縦、QHは横に並べる
mainLayout = QtGui.QVBoxLayout()
#ボタン1の作成
button1 = QtGui.QPushButton("Button 1")
mainLayout.addWidget(button1)
#ボタン2の作成
button2 = QtGui.QPushButton("Button 2")
mainLayout.addWidget(button2)
button3 = QtGui.QPushButton("Button 3")
def SetButton():
mainLayout.addWidget(button3)
button1.clicked.connect(SetButton)
#ダイアログにレイアウトを指定
dialog.setLayout(mainLayout)
#ダイアログの名前
dialog.setWindowTitle("SAMPLE2")
#ダイアログのサイズ
dialog.setMinimumSize(200, 200)
#これも必須
sys.exit(dialog.exec_())
ここからダウンロードできます。
追加したのは以下のコードです。
button3 = QtGui.QPushButton("Button 3")
def SetButton():
mainLayout.addWidget(button3)
button1.clicked.connect(SetButton)
button3オブジェクトを作ります。
button1.clicked.connect(SetButton)でbotton1がクリックされるとSetButton関数が実行されます。
SetButton関数ではbutton3をレイアウトに追加してます。
次はオブジェクト化をやります。
にほんブログ村の
Pythonのカテゴリ
現在参加人数1人・・・
にほんブログ村のPythonのカテゴリに登録したことだしPythonの記事を書こうかなっと。
今回はPyQtでPythonでGUIを作ってみたいと思います。
僕自身、PyQtを使うのは初めてですが何とかします。
必要なのは、今回の開発環境は
Python2.4
PyQt-Py2.4-gpl-4.7-1
PyQtはPyQt-Py2.4-gpl-4.7-1.exeを入手して実行するだけでインストールできます。
これで完了。
サンプルはC:\Python24\Lib\site-packages\PyQt4\examplesにあると思います。
簡単なサンプルを作成してみます。
ボタンが二つ並んだだけのサンプルです。
ソースは以下の通りです。
from PyQt4 import QtCore, QtGui
#PyQtのインポートは必須
import sys
#これは必ず必須
app = QtGui.QApplication(sys.argv)
#ダイアログ作成
dialog = QtGui.QDialog()
#レイアウトの作成、QVは縦、QHは横に並べる
mainLayout = QtGui.QVBoxLayout()
#ボタン1の作成
button1 = QtGui.QPushButton("Button 1")
mainLayout.addWidget(button1)
#ボタン2の作成
button2 = QtGui.QPushButton("Button 2")
mainLayout.addWidget(button2)
#ダイアログにレイアウトを指定
dialog.setLayout(mainLayout)
#ダイアログの名前
dialog.setWindowTitle("SAMPLE1")
#ダイアログのサイズ
dialog.setMinimumSize(200, 200)
#これも必須
sys.exit(dialog.exec_())
すごい簡単ですねぇ。
サンプルのダウンロードはここから。
今日はこのぐらいにしときます。
次回はボタンを押すとアクションを起こすようにします。
多分、少しの変更で済みますが。
にほんブログ村の
Pythonのカテゴリ
現在参加人数1人・・・
まずは以下のインストーラを入手してください。
python-2.6.4.exe
pygame-1.9.1.win32-py2.6.msi(機能を制限するならなくても可)
VPython-Win-Py2.6-5.14.exe
Boost-1.35.0_VC9.msi
あとはインストーラの指示に従ってください。
Visual C++ 2008 EEは、このページからインストールしてください。
Open Dynamics Engine-0.11.1.zipをこのページよりダウンロードして C:\ に解凍してください。
その後、Visual C++を立ち上げて、
ツール→オプションを選択して、
VC++ディレクトリ、インクルードファイルを選択して、
C:\ode-0.11.1\include
C:\Python26\include
C:\Program Files\Boost-1.35.0
あとはライブラリファイルに、
C:\ode-0.11.1\lib\DebugDoubleLib
C:\Program Files\Boost-1.35.0\lib
C:\Python26\libs
を入力してください。
C:\ode-0.11.1\lib\DebugDoubleLibは入力する前にC:\ode-0.11.1\build\vs2008のode.slnを開いて、いずれかのファイルをビルドしておく必要があります。
VC++ 2008用ファイルを作るには、コマンドプロンプトからC:\ode-0.11.1\buildに移動して、
premake4 --with-demos vs2008
としてください。
最後にHPからPyDrawStuff-0.0-CRをダウンロードして、PyDrawStuffのtest39.slnを開いてください。
あとは、Sample.cppを煮るなり焼くなり好きにしてください。
・・・・一つ重要なことを忘れておりました。
ジョイスティックを使うためのプログラムが必要です。
PyDrawStuffフォルダのJoysをC:\Python26\Lib\site-packagesにコピーしてください。
これで完了。
動作しなかった場合は、Pythonのバージョンを下げてみてください。
・・・・・まあ、そこまでしてやりたい人がいるかどうかですが。
最後にサンプル動画
ランキングに参加してます。押していただけると今まで経験がないくらい嬉しいです。
にほんブログ村