ON-BLOG

CGのこと、あれこれ書いてます。

Pyside勉強 その弐

続き。

ハローワールドのスクリプトはこれぐらいにして
続いてプッシュボタンについて。
これも前回記載したサイトに載っているものです。
こちらはイキナリMAYAに落とし込んだコードです。↓

# -'''- coding: utf-8 -'''-
import sys
from PySide.QtCore import *
from PySide.QtGui import *

def sayHello():
	print "Hello World!"
button = QPushButton("Click me")
button.clicked.connect(sayHello)
button.show()

実行すると、こんな感じに
f:id:tommy_on:20190415001411p:plain
ボタンを押すと、Hello World!って出力される
シンプルなものです。


以下に説明を記載します。

# -'''- coding: utf-8 -'''-

このコマンドを記載することで、UTF8にエンコードしてくれます。
記載しない限りは2バイト文字は文字化けしますので
注意が必要です。
詳しくは、こちらを参照に…
qiita.com

次、

def sayHello():

このコマンドは、def文といい、関数になります。
 sayHelloは関数名になります。
この辺りはPythonの基本ですね。
一応note.nkmk.me

button = QPushButton("Click me")

前回のLabel同様に、UIパーツあたります。
QPushButtonはMAYAでいう、cmds.button()と同じです。
Pyside側のボタンを設定するメソッドです。
()中は、ボタンに表示される文字列です。
後から変更する場合は

button.setText("Push!Push!")

とします。
これでボタンの表示が変更されます。
f:id:tommy_on:20190415004859p:plain

言葉通りですが、ボタンが格納されている変数に対して
【setText】メソッドで中身を替えています。
ボタンにアイコンを仕込む時は

button.setIcon(QIcon('D:/button.jpg'))

とします。
setIconでアイコンをセットする命令を出し()内で
アイコンのファイルを指定しています。
f:id:tommy_on:20190415005101p:plain
※青い画像を指定しています。

色を変える時は、スタイルシートを使いますが
長くなるので後述します。

button.clicked.connect(sayHello)

ボタンが押された。という変更を取得し、押されたあと
関数【sayHello】に接続しています。
要はボタン押したら、関数実行しますね。って事。
MAYAだと、button(command=Function)としますが
それと同じです。
最後の一行は前と同じなので割愛。
ボタンというパーツを読み込み
クリックされたら、関数実行する。
というかなりシンプルなものです。


はい。
こんな感じです。
関数を使ったぐらいですが、これが肝なので
書いてみました。

以上です。