[PySide] QThread+Signalで処理を実行する

UI上でなにか処理をしようとした場合、普通にやるとUIがかたまってしまって
ログ流したり出来ずマズー なので、QThreadを使用してテストしてみました。

UIファイルは → これ

コードはこんな感じ。
ボタンを押すと、0~99カウントが1秒ごとにログに表示されます。
前まではログ表示にはTextEditを使用していたのですが、カーソル移動したりスクロールしたりするのが
めんどくさかったので、ListView+StringListModelに変更してみました。
StringListはListで中身を管理できるので扱いがとても楽ですね。

UIの裏側でメインの処理を動かすのに、QThreadを使用します。
run() の中に処理を書いてある内容がサブプロセスとして実行されます。
単純に実行するだけならそれでOKなのですが、処理の内容をUIのログウィンドウに表示したいので、
SIGNAL-SLOTで、ログを表示する都度 UIにログが表示されるようにしています。

emit( str ) のタイミングで、UIに strの文字が送信されます。

SIGNAL-SLOTの自作は、はじめは???だったのですが、覚えるととても便利ですね。

この間、久しぶりにmelとかでUI組んでたら あまりのめんどくささに嫌になりました。
楽なモノになれるとだめですねズサーc⌒っ゚Д゚)っ

コメントを残す

メールアドレスが公開されることはありません。


*