将QQuickView重新加载到同一窗口容器中
Reload QQuickView into the same window container
我想把插件写到我的程序中,作为显示在dock小部件中的qml
我以这种方式加载插件:
if (!qview)
qview = new QQuickView();
qview->engine()->clearComponentCache();
qview->setSource(QUrl(path));
QQuickItem *item_main = qview->rootObject();
QWindow* main_page = item_main->window();
auto container = QWidget::createWindowContainer( main_page, ui- >dockWidgetContents );
container->show();
它工作正常,但重新加载插件相当慢,并导致闪烁。我认为这是因为createWindowContainer每次都会创建本机窗口。我可以通过强制QQuickView在重新加载后使用相同的窗口容器来加速重新加载吗?或者以某种方式避免窗口闪烁
解决方案非常简单:
if (!qview) {
QWindow *wnd = new QWindow();
QWidget::createWindowContainer(wnd, ui->dockWidgetContents )->show();
qview = new QQuickView(wnd);
}
相关文章:
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 问:如何使用C++中的按钮从窗口打开窗口
- SDL 窗口不会弹出
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 如何在cpp文件之间切换窗口?在Qt中
- QuadTree只在窗口的右上角绘制
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 如何在C++中找到active directory中禁用和锁定的窗口帐户
- 处理闪烁窗口事件
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- C++win32 API创建多个类似视口的窗口
- SFML RenderWindow打开窗口需要很长时间
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 获取 SFML 窗口的 HWND 和高可用性?
- 如何获取 GLFW 窗口 ID?
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- QtWidget 窗口的 QQuickView 子项
- 将 QQuickView 元素添加到现有窗口
- QQuickView窗口在调整鼠标大小时冻结
- 将QQuickView重新加载到同一窗口容器中