PySide ウィンドウに大量の画像を表示する
PySideのThread使って謎の異常終了で悩まされたので色々と調べ直した
— あんどうめぐみ@れみりあ (@fereria) 2019年8月18日
参照渡しィィィ!!!https://t.co/TB7JtgQc5G
そういや PySide でスレッド周りあんまやったことないなぁ……と思ってやってみた。
お題はアセットブラウザとかでよくあるサムネ画像の一覧表示。
おおよそ悪くないとこまでいけたので、主にパフォーマンス周りについてメモっておく。
コードはこちら → py3_test/thread_pool_test.py at master · hal1932/py3_test · GitHub
- 概要
- Thread と ThreadPool
- スレッド間の役割分担
- QImage と QPixmap
- 雑多な話題
Maya 用 PySide メインウィンドウの雛形。
ホリデープログラミング向けの Maya メインウィンドウの雛形を晒してみる。
ちょいちょい雑な実装もしてるけど、まぁそこはあくまで個人開発のテスト向け*1ってことで。
maya_test/maya.py at master · hal1932/maya_test · GitHub
- ライブラリコード
- findChildren() を使わない多重起動防止
- UI を動的に再構築するための一番楽な実装
- QApplication 生成ロジックの隠蔽
- QApplication の初期化と QMainWindow の初期化を分離
- ユーザーコードの例
*1:そもそも業務で実戦投入してるコードをこんなとこで晒すわけにはいかない。ほんとはそっちを出したいんだけど……。
PySide で多言語対応してみる。
maya_test/main_window.py at master · hal1932/maya_test · GitHub
そのうち必要になる気がするので手順をメモっておく。
- Qt Linguist のインストール
- 多言語対応の UI を組む
- pyside-lupdate
- 言語の反映
- 動的な言語切り替え
PySide で QGraphicsView を使ってみる。
ノードエディタっぽいものを試しにつくってみたので、気になったとことかをいくつかメモっておく。
maya_test/tools/node_editor at master · hal1932/maya_test · GitHub
- 基本設計
- QGraphicsItem が QObject 派生ではない
- QGraphicsItem にイベント実装が足りない
- カスタム描画と当たり判定
- コンテキストメニュー
- イベントハンドラの実装がカオス化する
Python のプロパティあれこれ。
PyMEL の utils.cachedProperty をみてふと思ったのでやってみたコネタ。
python/property.py at master · hal1932/python · GitHub
- public フィールド
- property をそのまま使う
- fget 内で hasattr してから setattr
- property 作成時に setattr して getattr
- property 作成時に setattr して getattr(値キャッシュ付き)
テクニカルアーティストのための「5つの習慣」
GDC Vault - Technical Artist Bootcamp: Identifying Technical Art by Its Habits
あまり見かけないかんじでおもしろかったのでざっとまとめてみる。内容は、「習慣」というものからどういった性質をもつ人間がテクニカルアーティストたりうるかを考える、といったもの。
続きを読む