1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PySide2の情報をまとめる(自分用)

Last updated at Posted at 2020-12-12

pythonで作る対話システムの2章を読んでわからなかったPySide2を用いた処理をまとめます。

#SCXMLとは
有限状態オートマトンを記述するための言語。

対話システムやマルチモーダルアプリケーションの遷移図を書くために利用されている。

#Qt for Python(PySide2)
これはpythonでSCXMLを扱うために必要。

有限状態オートマトンを表すQScxmlStateMachineというクラスがある。

from PySide2 import QtCore, QtScxml
#Qtに関するおまじない
app = Qtcore.QCoreApplication()
el = Qtcore.QEventLoop()

Qtを用いるアプリケーションではメインとなるインスタンスが必要。
そのためのapp = Qtcore.QCoreApplication()
Qtのモジュールは一般にイベントを受け取って処理を進める設計になっている。

QtScxml.QScxmlStateMachine.fromFile('states.scxml')

fileName で指定された SCXML ファイルからステートマシンを作成します。

このメソッドは常にステートマシン(有限状態オートマトンのこと?)返します。SCXML ファイルの読み込み中にエラーが発生した場合、ステートマシンを開始することはできません。エラーは、parseErrors() メソッドを呼び出すことで取得できます

parseErrors()
メゾットを追加してファイルの読み込みにエラーがあるかを調べる。

activeStateNames()

すべてのアクティブな状態の状態名のリストを取得します。

あるステートがアクティブな場合、定義上はすべての親ステートがアクティブになります。compress が true (デフォルト) の場合、親の状態はフィルタリングされ、リーフの状態だけが返されます。これが false の場合、アクティブなステートの完全なリストが返されます。

compressがfalseの場合も試してみる
activeStateNames(compress=false)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?