标签: qt-quick

在QML中动态添加元素到SplitView

我正在使用QML,我想动态地向SplitView添加元素,例如.onMouseClick,但到目前为止我没有找到答案.

到目前为止我发现的是SplitView它的默认属性设置为它的第一个孩子的data属性.所以我想我应该尝试添加新动态创建的组件,并将父组设置为该child(splitView1.children[0]).不幸的是,这也不起作用.在组件加载完成后,第一个子节点的子节点数为零(看起来像SplitLayout的Component.onCompleted事件调用一个将这些子节点移动到其他地方的函数).因此,添加的子项不会呈现(并且不响应任何布局附加属性).

请参阅以下代码段:

import QtQuick 2.1
import QtQuick.Controls 1.0
import QtQuick.Layouts 1.0

ApplicationWindow {
    width: 600
    height: 400

    SplitView {
        anchors.fill: parent

        Rectangle {
            id: column
            width: 200
            Layout.minimumWidth: 100
            Layout.maximumWidth: 300
            color: "lightsteelblue"
        }

        SplitView {
            id: splitView1
            orientation: Qt.Vertical
            Layout.fillWidth: true

            Rectangle {
                id: row1
                height: 200
                color: "lightblue"
                Layout.minimumHeight: 1
            }

//            Rectangle {               //I want to add Rectangle to splitView1 like this one, but dynamicly eg.onMouseClick
//                color: "blue"
// …
Run Code Online (Sandbox Code Playgroud)

qt qml qt-quick qtquick2

11
推荐指数
1
解决办法
3081
查看次数

如何在QML中读取FILE内容?

我只需要类似于Fstream的东西来读取QML中的文件IO.为什么没有文件IO?

qt qml qt-quick

10
推荐指数
3
解决办法
2万
查看次数

如何在QML Javascript中创建和使用C++对象

我的应用程序使用c ++和QML.

我在C++部分定义了几个对象来访问SQL等.

看起来像:

class MyObject : public QObject
{
    Q_OBJECT
public:
    MyObject(QObject *parent = 0);
    Q_INVOKABLE void someFunction(const QString &query);
};

qmlRegisterType<MyObject>("xxx.xxx", 1, 0, "MyObject");
Run Code Online (Sandbox Code Playgroud)

理想情况下,我只需要在JML中使用这些对象,而不是在QML中.

我尝试了很多例子并阅读了所有文档,但仍然无法解决我的问题.

所以我的问题:

  • 如何在Javascript中实例化C++中定义的对象?我试过var obj = Qt.createComponent("MyObject");但看起来不行.是否有可能以正常的JS风格定义新对象 - var obj = new MyObject;
  • 如何在javascript中访问此创建的对象?我试过obj.someFunction("xxx")但是有一些错误 - TypeError: Property 'someFunction' of object QQmlComponent(0x3605f5c0) is not a function.我在这里做错了什么?我的对象派生自QObject,而不是来自QQmlComponent.

javascript qml qt-quick qt5 qtquick2

10
推荐指数
1
解决办法
7651
查看次数

如何将可拆卸区域(QDockWidget)添加到QML应用程序

如何将可拆卸区域添加到QML ApplicationWindow?

以下面的应用程序(Tiled)为例.它有多个可拆卸区域.在第一张图像中,所有区域都附着,而在第二张图像中,区域正在分离/重新连接:

在此输入图像描述

从C++开始,这可以用QDockWidget实现(参见这个问题).但是QML有解决方案吗?

c++ qt qml qt-quick qt5

10
推荐指数
2
解决办法
2079
查看次数

如果在QML中声明

完全是QT和QML的新手.我正在尝试设置基于两个属性格式双打之间的关系的矩形的颜色callValuehandRaiseXBB,但我得到的错误

意外令牌如果"

期望一个合格的名称ID

谁能告诉我我做错了什么?

import QtQuick 2.0

Item{
    id: hand

    property double callValue: 0.0

    property double handRaiseXBB: 100
    property string handCallColor: "green"
    property string handFoldColor: "grey"

    Rectangle {
        anchors.fill: hand
        if (hand.callValue >= hand.handRaiseXBB) {
            color: hand.handFoldColor
        }
        else {
            color: hand.handCallColor
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

user-interface qt qml qt-quick

10
推荐指数
1
解决办法
3万
查看次数

自定义URL协议处理程序Qt 5

我想在我的应用程序中使用Video/ MediaPlayerQML元素,并让它从自定义流中播放视频.QMediaPlayer似乎支持这个,因为你可以告诉它从QIODevice哪个可以做任何你想做的事情.但MediaPlayer只支持URL.

有什么办法可以注册我自己使用自己的流媒体协议的URL方案吗?例如,说我想做rtsp2://...,我可以做一些模糊的事情:

class Rtsp2 : public QIODevice
{
    // open, read, seek, close, etc.
}

QCoreApplication::registerUrlProtocol("rtsp2", Rtsp2);
Run Code Online (Sandbox Code Playgroud)

url qt qml qt-quick qiodevice

9
推荐指数
1
解决办法
1775
查看次数

QTQuick(QML)中的FileDialog:以给定名称保存文件

我们正在构建一个Qt Quick应用程序,它必须能够以给定名称保存文件.

FileDialog组件中,您只能设置目录.这不是非常用户友好,因为您不希望每次下载文件时手动输入文件名.

到目前为止我们尝试过不同的东

  1. 来自QtQuick.Dialogs的FileDialog:无法设置filename

  2. 通过QPlatformFileDialogHelper进行原生对话(淘气私有c ++ hack):无法在Linux(Gnome)上设置文件名

  3. 通过静态QFileDialog :: getSaveFileName()的原生对话框:在快速应用程序中,'父'没有可用的QWidget

  4. QFileDialog实例的QT对话:由于未设置'parent',因此模态doeas不起作用.在快速应用程序中,没有可用于setParent()调用的QWidget

(使用带有QT 5.1和QtQuick 2.1的C++,包括所有桌面组件)

qt qfiledialog qml qt-quick qtquick2

9
推荐指数
1
解决办法
9120
查看次数

自定义窗口框架在qt版本中表现不同(ANGLE与OpenGL)

我的任务是为QtQuick创建一个窗口,可以像普通窗口一样使用它,但具有自定义框架外观(不是默认的系统装饰).我想实现类似于Visual Studio窗口或类似的效果.

允许我实现该目标的代码如下所示:

main.cpp中

#include <QtQuick/qquickpainteditem.h>
#include <qapplication.h>
#include <qqmlengine.h>
#include <QtQuick/qquickwindow.h>

class frameLess :
    public QQuickWindow
{
public:
    frameLess(QWindow *parent = 0) :QQuickWindow(parent) { }

    bool nativeEvent(const QByteArray& eventType, void* message, long* result)
    {
        MSG *msg = static_cast<MSG *>(message);

        switch (msg->message)
        {
        case WM_SHOWWINDOW:
            // after that call Qt considers window as frameless
            setFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::Window | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
            // that call force the Windows to serve users mouse events like in standard window
            SetWindowLongPtr(msg->hwnd, GWL_STYLE, …
Run Code Online (Sandbox Code Playgroud)

c++ opengl winapi qt qt-quick

9
推荐指数
1
解决办法
730
查看次数

QML:渲染qml屏幕时出现问题

我在其中一个开发板上渲染QML屏幕时遇到问题

在某些屏幕上,我有悸动的GIF图像,在这里我可以看到屏幕的背景颜色,如图所示. QML中的刷新问题

在某些屏幕上,我有列表视图,我通过JavaScript更新,这没有生效,因为我无法在列表视图元素中看到更新的图像/文本.

这是与刷新屏幕有关的某种问题吗?

在IX86上使用QML编译时,相同的代码在Ix86上运行良好.

qt qml qt-quick

8
推荐指数
1
解决办法
581
查看次数

Qt5 QML错误未安装QtQuick QtGraphicalEffects

在成功编译项目之后,我获得了一个可执行文件.

当我输入./program结果时,我看到:

QML Error: qrc:///qml/main.qml:25:1:module "QtGraphicalEffects" is not installed
qrc:///qml/main.qml:24:1:module "QtQuick" is not installed
Run Code Online (Sandbox Code Playgroud)

我正在使用QtQuick 2.0,Qt5和Ubuntu,QtQuick和QtGraphicalEffects,~/Qt5.0.2/5.0.2/gcc/qml/我已经从站点项目安装了新的Qt SDK.

我已尝试在Windows 7上运行此应用程序,但结果相同.

有人可以帮忙吗?

qt qml qt-quick qt5 qtquick2

8
推荐指数
1
解决办法
8472
查看次数

标签 统计

qt-quick ×10

qml ×9

qt ×9

qtquick2 ×4

qt5 ×3

c++ ×2

javascript ×1

opengl ×1

qfiledialog ×1

qiodevice ×1

url ×1

user-interface ×1

winapi ×1