Russian Qt Forum

Qt => ActiveX => Тема начата: lucky от Март 18, 2011, 23:37



Название: QAxObject и Thread
Отправлено: lucky от Март 18, 2011, 23:37
Добрый вечер. У меня следующая проблема. При запуске в главном потоке MS Word - приложение подвисает, но это нормально. Я данный код:
Код:
QAxObject *wordApplication = new QAxObject("Word.Application", this);
    wordApplication->setProperty("Visible", true);
Пытался вынести в отдельный поток, но у меня ничего не вышло, ну никак не хочет работать этот код в методе run. Объясните пожалуйста, почему?


Название: Re: QAxObject и Thread
Отправлено: lucky от Март 19, 2011, 13:15
Разобрался. Сделал следующее (может кому-то пригодится).
В созданном классе Thread, наследника от QThread, сделал так:
Код:
#include <windows.h>

Thread::Thread(QObject *parent) :
    QThread(parent)
{
    this->moveToThread(this);
}

void Thread::run()
{
    CoInitializeEx(NULL, COINIT_MULTITHREADED);
    QAxObject *word_application = new QAxObject("Word.Application", this);
    word_application->setProperty("Visible", true);
}