问题标签 [qtquick2]

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.

0 投票
1 回答
1063 浏览

android - Qt 5.1 Android 程序不发送按键

我正在为 Android 的 Qt 5.1 和 Qt Quick 2.0 创建一个程序,但我的手机似乎没有发送按键。当我在桌面上运行相同的代码时,它可以工作,所以焦点似乎没问题。

Keys.onPressed 和 Keys.onBackPressed 都不起作用,返回键只是关闭程序。我正在通过 ADB 在 Android 4.2 设备上进行调试。

主.qml

提前致谢

0 投票
1 回答
4750 浏览

qt - QML - MouseArea/MouseEvent 问题

以下代码生成一个白色矩形,其中包含一个红色矩形和一个灰色矩形。每个矩形都有一个关联的 MouseArea。当鼠标在其中单击时,灰色矩形变为蓝色。当鼠标光标进入其中时,红色矩形会打印一条控制台消息,并在发出释放信号时打印另一条消息。

我想:

  1. 在灰色矩形内按住鼠标按钮(变为蓝色)
  2. 将光标移到灰色/蓝色矩形之外,然后移到红色矩形内,而不释放按钮并捕获红色矩形的输入信号
  3. 释放光标在红色矩形内的按钮并捕获红色矩形的释放信号。

是否可以?使用当前代码,只有在进入时没有按下 mopuse 按钮​​时才会发出红色矩形的输入信号,并且只有在该矩形内按下按钮时才会发出释放信号。显然,问题在于如果在那里按下按钮,灰色/蓝色矩形将控制鼠标事件。

这与我正在开发的应用程序中的场景类似,但经过了简化。

}

0 投票
0 回答
1080 浏览

qt - QtQuick 菜单实例化器:通知更改的行

我有菜单项模型和实例化器。

当我在索引 0 处向模型添加一些项目时objectAdded,新的 MenuItemindex=0会按预期发出信号。但是如果我想从模型中删除一些项目(例如,我["a";"b";"c";"d"]在模型中并且想要删除“a”和“b”)菜单项从另一侧删除(“c”和“d”被删除,“a " 和 "b" 还活着)。经过一些黑客攻击后,我找到了解决方法:如果我n从模型的开头删除项目,我应该写

代替

任何想法为什么从另一边移除物品?我有演示给你。

0 投票
2 回答
6540 浏览

c++ - 如何更改 QtQuick 2 窗口的标题?

我正在尝试更改我的项目的默认窗口,但它不起作用。我正在使用 QtQuick 2.0。尝试导入 QtQuick.Window 2.0 并将 Window{} 作为根对象而不是 Rectangle{} 但它不允许将窗口对象作为根。它给了我以下错误:

关于如何更改窗口标题的任何想法?我正在使用 Qt 5.1.1。

0 投票
1 回答
4644 浏览

qml - 使用自定义 ComboBoxStyle 将 ComboBox 元素中的标签居中

我正在使用QtQuick.Controls 1.0并且QtQuick.Controls.Styles 1.0我找不到正确对齐ComboBox垂直和右侧标签的方法。

这是我当前的代码

但是标签停留在我的元素的左上角,似乎不受锚点的影响。我也尝试parentcontrolbackground没有效果替换

0 投票
1 回答
13588 浏览

qt - 从 QAbstractListModel 中删除行

我有一个从 QAbstractListModel 派生的自定义模型,它暴露给 QML。我需要支持添加新项目和删除现有项目的操作。虽然插入操作没有任何问题,但删除操作会导致应用程序在调用 endRemoveRows() 函数时崩溃。

GPage 类派生自 QObject。在尝试调用 endRemoveRows() 时,试图找出导致应用程序崩溃的原因让我感到震惊。当调用 endRemoveRows() 时,我得到“QList::at:“索引超出范围”中的 ASSERT 失败”。如何从 QAbsracListModel 中删除行?还有其他方法吗?

我在 Windows 7 64 位机器上使用 Qt 5.1.0。

0 投票
1 回答
1055 浏览

opengl - Qt Quick 跨平台应用程序中的 OpenGL

我正在尝试开发一个跨平台(或至少桌面+嵌入式硬件)应用程序。我想使用 Qt Quick 创建一个触摸友好的 GUI。我已经实现了一个带有显示数据的 QGLWidget 的经典应用程序。重要的是只有窗口的一部分在 OpenGL 中。因此,EGLFS 和 LinuxFB 存在问题。只有 X11(或者可能是 Wayland)可以正确显示应用程序(其他会生成一些关于缺少 setParent 函数的错误,并且整个屏幕都是黑色的)。现在我正试图在 QML 中实现同样的目标。我想将此 OpenGL 渲染器用作我的 QML 应用程序的一部分,以及它周围的一些 Qt Quick 小部件。我发现有几个人问同样的事情,答案总是继承 QDeclarativeItem 并打电话给画家 s beginNativePainting() (其他人说通过 QDeclarativeItem 导出它,但我不知道如何做到这一点)。问题是在桌面上,Qt 5.11 原生画家不是 OpenGL。而且在QT5中没有办法强制使用OpenGL图形系统。因此,当我尝试获取 OpenGL 上下文 (QGLContext::currentContext()) 时,我总是得到 NULL。另一个问题:如果我用 qmlRegisterType("Test", 1, 0, "Test"); 导出我的小部件 它仅在我使用 QDeclarativeView 时才可见,但随后看不到 Qt Quick。如果我使用 QQuickView,它会说未安装模块“测试”。我怎样才能正确实施呢?因此,当我尝试获取 OpenGL 上下文 (QGLContext::currentContext()) 时,我总是得到 NULL。另一个问题:如果我用 qmlRegisterType("Test", 1, 0, "Test"); 导出我的小部件 它仅在我使用 QDeclarativeView 时才可见,但随后看不到 Qt Quick。如果我使用 QQuickView,它会说未安装模块“测试”。我怎样才能正确实施呢?因此,当我尝试获取 OpenGL 上下文 (QGLContext::currentContext()) 时,我总是得到 NULL。另一个问题:如果我用 qmlRegisterType("Test", 1, 0, "Test"); 导出我的小部件 它仅在我使用 QDeclarativeView 时才可见,但随后看不到 Qt Quick。如果我使用 QQuickView,它会说未安装模块“测试”。我怎样才能正确实施呢?

0 投票
2 回答
1454 浏览

qt - QML 状态不会在 C++ 信号上改变

我正在努力理解 QML 状态概念。

我有以下代码:

我的意图是单击“myBtn1”时,该按钮应该消失,“myBtn2”应该出现。因此,我使用所描述的状态,并且到目前为止它有效!状态发生变化,带有“再见”标签的按钮可见。

在下一步中,单击按钮“myBtn2”调用“myCppObject”的函数“coolFunction”,其唯一目的是发出一个名为“coolSignal”的信号——这也有效!我的问题是我确实在控制台中得到了预期的输出,就像:

但是“myBtn1”保持隐藏状态,“myBtn2”保持可见!!!所以状态并没有真正改变!!!我对 QML 中的状态不了解的任何想法?

顺便说一句:如果我更改myBtn2.onClickmyRectangle.state = "init";状态转换工作!!!但我真的需要它发生在自定义 C++ 信号上!

感谢您提前提供任何帮助。

编辑:我忘了说我不使用写在 main.qml 顶部的源代码。它位于一个名为 MyElem.qml 的额外 QML 文件中,该文件用作列表视图的委托元素。这意味着在运行时加载了多个 MyElem,并且它们都具有相同的 id (myRectangle)。这就是我没有看到任何视觉变化的原因吗?

0 投票
0 回答
595 浏览

qt - WebView with QtQuick2

I can't seem to get a WebView working with QtQuick 2. The error is objc[71279]: Class QNSListener is implemented in both /Qt5.1.1/5.1.1/clang_64/plugins/bearer/libqcorewlanbearer.dylib and /Qt5.1.1/5.1.1/clang_64/plugins/bearer/libqcorewlanbearer_debug.dylib. One of the two will be used. Which one is undefined.

I'm compiling on 64-bit Mac OSX running 10.8.4.

The QML is:

I've also included QT += widgets network webkit webkitwidgets adn CONFIG += x86 in the PRO file.

Can't quite work out what is happening. The webview doesn't show at all.

0 投票
1 回答
3289 浏览

qt - QML:获取 QObject 父级

QML 从可视树(QtQuick 场景图)中引入了一个单独的所有权 ( QObject) 树。

  • parent返回视觉父级。
  • children返回视觉孩子。
  • data返回QObject孩子们。

但是我如何访问QObject父级?

仅供参考,我打算动态创建和销毁包含自定义类型的嵌套布局,因此我需要管理QObject树 - 仅使用可视树将导致“错误”对象在重新设置父级然后删除后消失。