Pyside勉強 その壱
Pyside自体は今までも使ってきました。
が、その場しのぎでずっと使ってきました。
数日前に数見たらPysideで作ったスクリプトが20個ほど。
ただ、これらはいろんなサンプルから作っただけなので
基本で躓くことが多く、結構時間が掛かってしまってました。
ちょうど2017年の暮頃に、モチオさんが
SiShelf
github.com
を開発されていて、それに影響受けて私もやろうと
メモしたやつが見つかったので、それを再度まとめつつ
どうせなら、うやむやにしてた箇所を、一から学びなおしたいと思います。
すべて記事にすることは難しいですが、一先ず最近セレクターを
複数個作ったので、この勉強でのゴールはPysideでセレクターを作ることにします。
では、初めにいつものハローワールドから。
https://wiki.qt.io/Hello_World_in_PySide/jahttps://wiki.qt.io/Hello_World_in_PySide/ja
こちらに記載しているコードで行います。
import sys from PySide.QtCore import * from PySide.QtGui import * app = QApplication(sys.argv) label = QLabel("Hello World") label.show() app.exec_() sys.exit()
MAYAで実行すると、エラーになります。
なんでおきているかというと、MAYAでは
起動時にPysideを起動しているので
多重起動になってますよ!
ってエラーになっているわけです。
なので、それを回避する為には、以下のようにします。
app = QApplication.instance()
文字通り、インスタンス化して起動させています。
起動すると、以下の感じになります。
無事起動できました。
起動はできましたが、一個一個が説明できないと
理解したことにならないと思うので
ここは一行ずつみていきます。
コード
import sys
Python のインタプリタ、実行環境などの処理をまとめた
モジュールになります。
ファイル、パス操作など、基本的なコマンド多いので
Pythonではよく使います。
from PySide.QtCore import * from PySide.QtGui import *
PysideのGUIやそのコネクション周りのモジュールを読み込む必要があります。
それらをアスタリスクで一括読み込みしています。
アスタリスクで読み込んでいるのは、手を抜いている証拠です苦笑
app = QApplication.instance()
前述したとおり。
インスタンスを作成しています。
label = QLabel("Hello World")
PysideのQLabelというテキストや画像を表示するためのモジュールを
使って括弧内の【Hello World】をテキストとして、描画する!
という設定を行いつつ、labelという変数に格納しています。
label.show()
前述した、ラベルと表示させるコマンドです。
MAYAのShowと同じ感じです。
app.exec_()
このコマンドで、アプリケーションを実行しています。
exec_()は実行コマンドなので、インスタンスを実行する。
ということです。
sys.exit()
スクリプトのプロセスを終了させます。
正直、上記の書き方では無くても動きます。
MAYAで動かす際には
from PySide.QtCore import * from PySide.QtGui import * label = QLabel("Hello World") label.show()
このコマンド郡だけで動きます。
これは前述しましたが、MAYA上で既にPysideが動いていますので
スクリプトエディタ上では
app.exec_() sys.exit()
この二つをスクリプト実行時に、裏で実行している為です。
こんな感じで一番初歩の部分から進めていき
10回ぐらい続けばいいなぁと思います。
以上です。