问题标签 [qquickview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Qml/Qt/C++:Widget 中的 QQuickView,无法正确定位
我正在使用 QT5.5 实现一个简单的程序,其中包含一个 HTML 窗口(QWebview),如下图所示:
现在我希望该程序也安装在 iOS 上,例如 iPad。我发现 QWebview 类不适用于移动系统,所以我不得不将我的 HTML 窗口更改为带有 QML 文件的 QQuickView(或者有更好的方法吗?)。我在网上找到了以下代码:
然后我将容器添加到主窗口。webview.qml:
但不知何故,我无法正确布局。 iOS 上的 HTML 窗口 容器后面有一个空白/白色的矩形,并且容器也不在它应该在的右侧的 HTML 窗口中。当我在 qml 文件中更改矩形的宽度和高度时,它只会更改 webview 的大小,而不是白色背景。
谁能告诉我,我怎样才能做到这一点?我也用过container->setParent()
,但视图总是在左边。
c++ - Use QQuickView or QQmlApplicationEngine to switch between pages from ApplicationWindow
I'd like to use an ApplicationWindow
as a main file and be able to switch to other QML
files from C++
with QQuickView::setSource(const QUrl & url)
. Basically it would do this:
start-up => loads main.qml (ApplicationWindow
) => click on help button => C++
loads help.qml file => etc.
main.qml
(I am wondering if the Loader
here is really necessary here)
However QQuickView
only supports loading of root objects that derive from QQuickItem
. Therefore it doesn't work with ApplicationWindow
.
I'm thinking about using QQmlApplicationEngine
instead of QQuickView
but the usage seems different, this class being only equipped with QQmlApplicationEngine::load(const QUrl & url)
What would be the best course of action for my purpose? Do I really need an ApplicationWindow
in my main.qml file?
qt - JAWS 阅读器读取 Qt 应用程序标题三遍
我有一个使用 Qt 5.6 创建的 Qt 应用程序。我已经使用 QQuickView setTitle() 函数设置了应用程序的标题。
标题设置正确,但是当我使用 JAWS 屏幕阅读器时,在应用程序启动时,标题被读取了三遍。
我能做些什么来解决这个问题?
这是我为应用设置标题的方法
qt - 加载 QQuickView 时防止闪烁
我有一个添加QStackedLayout
了两个QWidget
对象的对象。第二个QWidget
是这样创建的:
现在我希望能够显示和隐藏第二个(顶部)小部件。我通过调用m_qmlWidget->setVisible(false);
或执行此操作,m_qmlWidget->setVisible(true);
但每当我这样做时,小部件都被涂成整个空白(白色),并且在它将背景更改为透明颜色后不久。这对我来说是个问题,因为第一个小部件大部分是黑色的。我认为问题的原因是正在加载 QML 文件并阻止重绘事件。我想到的两个解决方案是:
- 异步加载 QML 文件
- 不可见时不要卸载第二个小部件
恐怕这两种选择都是不可能的。如何解决闪烁的白色背景的问题?
当我visible
将第二个更改QWidget
为真或假时会发生闪烁。我不明白为什么在隐藏顶部小部件时会发生闪烁。
在这里您可以找到一个工作示例项目。也许QOpenGLWidget
对象是这里的问题。创建两个小部件似乎没有产生问题。
qt - 如何将 QML 视图嵌入到本机窗口中
我在尝试将 QML 视图插入本机 OSX 窗口时遇到问题。我知道这是可能的,但我不知道我做错了什么。
基本上,我的目标是,给定一个原生 NSView*,然后嵌入一个基于 QML 的小部件。问题是我让它指出它确实在视图内渲染了 qml,但它在侧面创建了一个额外的透明窗口,并且它似乎没有正确重绘 QML 视图。
这是我正在使用的代码(请忽略所有内存泄漏):
这是简单的qml:
qt - QQmlApplicationEngine 和 QQuickView 有什么区别?
我使用QQmlApplicationEngine
如下:
但是现在我想为我的应用启用多重采样,并且QQmlApplicationEngine
似乎没有setFormat
启用多重采样的方法。
我QQmlApplicationEngine
在论坛中找到了一种方法:
但它依赖于引擎的第一个根对象 a QQuickWindow
,这在 Qt 文档中没有记录。所以我不想使用那种技术。
另一种方法是跳过QQmlApplicationEngine
并创建一个QQuickView
。这确实有一种setFormat
方法可以让我启用多重采样,但我想知道,切换QQmlApplicationEngine
到是否会丢失任何东西QQuickView
?
换句话说,这两个类之间有什么区别?
我发现的一个区别是(从这里):
与 QQuickView 不同,QQmlApplicationEngine 不会自动创建根窗口。如果您使用 Qt Quick 中的可视项目,则需要将它们放置在 Window 内。
这种特殊的差异对我来说并不重要。
还有其他区别吗?
qml - QQuickView (QML) 对鼠标事件透明
我有一个大矩形,按钮居中。我希望我的矩形对鼠标事件是透明的,除了按钮,它必须是可点击的。我的意思是,我希望能够用鼠标选择矩形下的代码,就像没有显示矩形一样。
我为所有大矩形添加了一个 MouseArea,试图忽略鼠标事件,但它不起作用。
我读到'Qt :: WA_TransparentForMouseEvents'用于此目的,但据我所知,在Qt窗口中,在我的情况下不可用。
提前致谢
我的 QML 是从 main.cpp 加载的:
MyRect.qml:
qt-quick - QQuickView 和 QQuickItem 有什么区别?
我想继承 QQuickItem 而不是 QQuickView 来使用 QQuick 类在 C++ 中编写接口。根据 Qt 文档中提供的解释,我了解 QQuickView 加载 qml。 QQuickView 用于将可显示的 QML 对象集成到应用程序的用户界面中。 QQuickItem 就像 QWidget (我可能在这里错了)。 QQuickItem 类提供了 Qt Quick 中所有可视项目中最基本的。 有人可以详细说明吗?
提前致谢
c++ - QQuickView 内容未正确调整大小
我正在尝试在 QWidget 中嵌入 QMLview。我设法在主窗口中显示视图没有任何问题,但是每当我调整它的大小时,qml 视图都不会更新。
查看未正确调整大小
这是绘制该视图的代码
主窗口.cpp
main.qml
我还尝试使用 setLayout 函数放置容器,但没有成功。