[Interest] Showing QGuiApplication/QML application on a given HWND ref.
Nuno Santos
nunosantos at imaginando.pt
Wed Jun 3 19:11:11 CEST 2015
Hey Bo,
Just wanted to share with you some progress.
Actually Qt makes it really simple. I was amazed I could do it with a
just 5 lines of code. (Qt ROCKS!)
Right now, I just have a problem. The plugin window opens and closes
perfectly. But once open, if I delete the plug in from the host and the
QApplication is deleted, it crashes. Still can't figure it why.
See below my simple solution for this case. I problably know it
yourself. I'm sharing it anyway.
bool IVstWrapperEditor::open(void *ptr)
{
AEffEditor::open(ptr);
if (!window)
{
window = QWindow::fromWinId((WId)ptr);
view = new QQuickView(window);
view->setSource(QUrl(QStringLiteral("qrc:/main.qml")));
view->rootContext()->setContextProperty("controller", _controller);
view->show();
return true;
}
return false;
}
void IVstWrapperEditor::close()
{
if (window)
{
qDebug() << "destroying view";
view->deleteLater();
view=0;
qDebug() << "destroying window";
window->deleteLater();
window=0;
}
AEffEditor::close();
}
Regards,
Nuno
On 03/06/2015 11:56, Nuno Santos wrote:
> In my case I have a related app which opens the plugin.
>
> The host provides a window handle to the plugin.
>
> I was trying to make that handle into a QWidget with the following code:
>
> MyWindow::MyWindow(void* ptr) :
> QWidget(0)
> {
> HWND w = (HWND) ptr;
>
> setGeometry(QRect(0,0,640,480));
>
> QPalette Pal(palette());
>
> // set black background
> Pal.setColor(QPalette::Background, Qt::black);
> setAutoFillBackground(true);
> setPalette(Pal);
>
> create((WId)w, false, false);
> }
>
> The problem is that two windows appear, the one the host provides and
> the one created by QWidget.
>
> It seems that the create call is not working as intended.
>
> MyWindow subclasses QWidget in order to call the create method since
> it’s protected.
>
> Do you have any clue why this technic isn’t working?
>
> Thanks,
>
> Nuno Santos
> Founder / CEO / CTO
> www.imaginando.pt <http://www.imaginando.pt>
> +351 91 621 69 62
>
>> On 03 Jun 2015, at 11:37, Bo Thorsen <bo at vikingsoft.eu
>> <mailto:bo at vikingsoft.eu>> wrote:
>>
>> Den 03-06-2015 kl. 12:35 skrev Nuno Santos:
>>> Thanks for sharing your code.
>>>
>>> I will try and give some feedback.
>>>
>>> Any thoughts regarding the initial approach? Is there any reason for you
>>> not having followed that path?
>>
>> My application inserts an overlay over a complete unrelated
>> application (the pokerstars or bet365 poker clients actually), so
>> this is the only approach that can work.
>>
>> Bo Thorsen,
>> Director, Viking Software.
>>
>> --
>> Viking Software
>> Qt and C++ developers for hire
>> http://www.vikingsoft.eu
>
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20150603/d3f4e509/attachment.html>
More information about the Interest
mailing list