标签: qtquick2

如何将二维浮点数组从 QML 传递到 C++?

我在 QML 中有一个二维浮点数组。我如何在 C++ 中获取它的值。

我用 C++ 创建了一个类,并完成了qmlRegisterType. 现在可以在 QML 中访问该类。

请用一个小例子来演示。


这是我尝试过的:

标题:

#include <QQuickItem>
#include <iostream>

class Controller : public QObject
{
    Q_OBJECT

    Q_PROPERTY(QList <QVariantList> names READ names WRITE setnames NOTIFY namesChanged)
    QList <QVariantList> m_names;

public:
    Controller()
    {
    }
    ~Controller() {
    }

    QList <QVariantList> names() const
    {
        return m_names;
    }

public slots:
    void setnames(QList <QVariantList> arg)
    {
        QVariantList p;
        if (arg.size () > 0)
        {
            p = arg.first ();
            std::cout << "\narg: \n" << p[0].toInt (); …
Run Code Online (Sandbox Code Playgroud)

arrays qt qml qtquick2

2
推荐指数
1
解决办法
3456
查看次数

Qt 属性是否假定对象是指针而不是成员?

假设我有一个 C++ 对象,其中包含一个向 QML 公开的成员对象:

class X : public QObject
{
   Q_OBJECT
};
class Y : public QObject
{
   Q_OBJECT
   Q_PROPERTY(X* x READ getX CONSTANT)
public:
   X* getX(void) { return &x; }
   X x;
};
Run Code Online (Sandbox Code Playgroud)

大多数情况下这有效,但有时会导致崩溃。调用堆栈相当长,但如下所示:

QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::data
qGetPtrHelper<QScopedPointer<QObjectData>>
QObject::d_func
QObjectPrivate::get
QQmlNotifierEndpoint::disconnect
QQmlNotifierEndpoint::~QQmlNotifierEndpoint
QQmlJavaScriptExpressionGuard::~QQmlJavaScriptExpressionGuard
QRecyclePool<QQmlJavaScriptExpressionGuard, 1024>::Delete
QQmlJavaScriptExpressionGuard::Delete
QQmlJavaScriptExpression::GuardCapture::captureProperty
QQmlEnginePrivate::captureProperty
QV4::QObjectWrapper::getProperty
etc.
Run Code Online (Sandbox Code Playgroud)

如果我设置X为一个指针:

class Y : public QObject
{
   Q_OBJECT
   Q_PROPERTY(X* x READ getX CONSTANT)
public:
   Y()
   { x = new X; }
   X* getX(void) { return x; …
Run Code Online (Sandbox Code Playgroud)

qt pointers qml qtquick2

2
推荐指数
1
解决办法
1112
查看次数

QML 布局中的元素自动换行

如果下一个元素的宽度超过指定布局的宽度,是否有 QML 布局或某些配置会自动将 QML 项目包装到下一行?

当我使用QML GridLayout时,项目只是离开窗口边缘并被剪切:

GridLayout {
    id: header_focused_container;
    width: parent.width;
    anchors.margins: 20;
    Text {
        text: "header_focused_container.width=" + 
            header_focused_container.width + 
            " and my width is =" + width
    }
    Rectangle { height:20; width:250; color: "red" }
    Rectangle { height:20; width:250; color: "blue" }
    Rectangle { height:20; width:250; color: "green" }
}
Run Code Online (Sandbox Code Playgroud)

网格布局工作[1]

当我查看 Qt 标记为“可扩展性”的文档页面时,我发现正在进行非常手动的缩放。基本上,他们建议我需要计算所需的列。

是否有某种布局类型或配置可以自动换行项目?

qml qt5 qtquick2

2
推荐指数
1
解决办法
2613
查看次数

PyQt5/pyqt4 是否已经支持具有手写识别功能的 QtVirtualKeyboard?

我正在使用 pyqt5 开发桌面应用程序,并且我想使用具有手写识别功能的虚拟键盘。我看到Qt、QtVirtualKeyboard已经支持它了。

这是一个链接

在此输入图像描述

我在 QtCreator 上运行了 C++ Qt 示例代码。但是使用 python3.5 和 PyQt5 会给出以下消息:

module "QtQuick.VirtualKeyboard" is not installed 
 import QtQuick.VirtualKeyboard 2.1 
Run Code Online (Sandbox Code Playgroud)

我应该如何继续?PyQt5 是否带有 VirtualKeyboard 模块?如果没有如何在PyQt5上安装它?

python pyqt pyqt4 qtquick2 pyqt5

2
推荐指数
1
解决办法
6005
查看次数

QtQuick 模板弹出窗口与 QtQuick Controls 弹出窗口

Qt Quick Templates 弹出窗口与 QtQuick Controls 弹出窗口有什么区别?

import QtQuick.Templates 2.0我从vs得到的弹出窗口import QtQuick.Controls 2.0似乎有细微的行为差异。

[1] https://doc-snapshots.qt.io/qt5-5.8/qml-qtquick-controls2-popup.html

[2] http://doc.qt.io/qt-5/qtquick-templates2-qmlmodule.html

qt qt-quick qt5 qtquick2 qtquickcontrols2

2
推荐指数
1
解决办法
1241
查看次数

Qt/Qml:地图元素的 Repeater 与 MapItemView

我想用QAbstractListModel. 似乎有两个 Qml 工具适合于此,MapItemView[1] 和Repeater[2]。更Repeater强大(例如,它允许嵌套模型) - 那么有什么理由使用 theMapItemView代替 a Repeater

问候,

[1] http://doc.qt.io/qt-5/qml-qtlocation-mapitemview.html

[2] http://doc.qt.io/qt-5/qml-qtquick-repeater.html

MapItemView源:http://code.qt.io/cgit/qt/qtlocation.git/tree/src/location/declarativemaps/qdeclarativegeomapitemview.cpp

转发器源:http://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/quick/items/qquickrepeater.cpp

qt qml qtquick2 qtlocation

2
推荐指数
1
解决办法
1848
查看次数

在没有加载器的情况下实例化内联组件

有没有一种方法可以Component在不使用 的情况下实例化内联(即在同一文件中定义)Loader?我不太关心使用Loaders 的性能影响,因为我担心大量Loader包装器会污染我的文件。

qt qml qtquick2

2
推荐指数
1
解决办法
1455
查看次数

在 QML 中将 TextArea 光标移动到 MouseArea 单击上

有一个 TextArea,我已将activeFocusOnPress属性设置为false阻止虚拟键盘弹出,但是当用户单击 TextArea 时,光标位置应该移动。为了实现这一目标,我认为 mousearea 将是一个不错的选择。以下是代码:

TextArea{
    id:textArea
    text:"ABCDEFGHIJKLMNOPQRSTUVWXYZ"    
    width:100
    height: 200
    color: "white"
    cursorVisible: true
    activeFocusOnPress: false //To Block virtual Keyboard popup

    background: Rectangle{
        color:"transparent"
        border.color : "white"
        border.width:2
        MouseArea{
            id:mousearea
            anchors.fill:parent
            onClicked: {

                //*** How to set cursor position??                    
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

qt qml qtquick2 qtquickcontrols2

2
推荐指数
1
解决办法
1643
查看次数

打开和关闭附加窗口 (QML)

目前我有一个以下列方式打开的窗口:

property variant win
Button {
    id: testButton
    MouseArea {
        onClicked: {
            var component = Qt.createComponent("test.qml");
            win = component.createObject(testButton);
            win.show();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. 创建这样的窗口是否可以,或者有更好的方法来做到这一点(来自 QML,而不是来自 C++)?

  2. 当我关闭这个附加窗口时(只需单击“x”按钮),我想将它连接到另一个事件(例如,更改按钮的颜色)。怎么做?

谢谢。

qt qml qtquick2 qtquickcontrols2

2
推荐指数
1
解决办法
4357
查看次数

QWidget和Qml在触摸屏的处理上有什么不同?

我将在触摸屏上开发一个系统。我尝试使用 Qwidget。但是我在 QT 文档中找到了这个。

它说,“Qt Widgets 通常需要鼠标光标才能进行良好的交互,而 Qt Quick 只提供了设计时考虑到触摸交互的原始构建块。”

那是什么意思?鼠标光标和原始积木有什么区别?

c++ qt touch-event qml qtquick2

2
推荐指数
1
解决办法
1529
查看次数

标签 统计

qtquick2 ×10

qml ×8

qt ×8

qtquickcontrols2 ×3

qt5 ×2

arrays ×1

c++ ×1

pointers ×1

pyqt ×1

pyqt4 ×1

pyqt5 ×1

python ×1

qt-quick ×1

qtlocation ×1

touch-event ×1