画像取得ソフトを開発しています。別のスレッドで表示機能を実行したい (画像を簡単にキャプチャできるようにライブ ビューを確保するため)。今のところ、QObject をサブクラス化し、DisplayObject を作成し、QThread::moveToThread 関数を使用しています。問題は、DisplayObject が GUI とやり取りする必要があることです (画像は QGraphicsView オブジェクトに表示する必要があります)。これを行うための最良の(そして最もエレガントな)方法は何ですか?
私の現在の解決策:
class DisplayObject : public QObject
{
Q_OBJECT
public:
inline void addDetectorSystem(cci::PGR* system);
inline void connectGui(ImageAquisition* gui);
public slots:
void display();
private:
cci::PGR* camSystem;
ImageAquisition* guiClass;
};
DisplayObject は次のように初期化されます。
DisplayObject Displayer;
Displayer.addDetectorSystem(PGRSystem);
Displayer.connectGui(this);
QThread thread;
Displayer.moveToThread(&thread);
connect(this, SIGNAL(display()), &Displayer, SLOT(display()));
thread.start();
私はそれがうまくいかないことを認めるのを忘れていました...