标签: qtquick2

Javascript在QML中不起作用

我有以下代码:

Item {
    width:  fos.width; height: fos.height

    Rectangle {
        id: fos
        width: 120; height: 120
        color: "red"

        MouseArea {
            anchors.fill: parent
            onClicked: {
                if (fos.color == "red") fos.color = "gray"
                else fos.color = "red"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想RectangleMouseArea点击时更改颜色.但是,代码不起作用.我的错在哪里?

qt qml qtquick2

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

如何在Qml列表视图中更新值?

我有一个ListModel,它存储一个字符串“ cityName”和一个实际值“ TimeZoneOffset”。顾名思义,cityName保存城市名称,TimeZoneOffset保存时间偏移量(距UTC的时间),以分钟为单位。

ListModel {
  id: worldCity

  ListElement {
   cityName: "London"
   TimeZoneOffset: 0
  }

  ListElement {
   cityName: "Amsterdam"
   TimeZoneOffset: 120
  }
}
Run Code Online (Sandbox Code Playgroud)

然后在ListView中使用此模型。ListView具有如下代码示例所示的结构。

ListView {
  model: worldCity
  currentIndex: -1

  delegate: ListItem.Standard {
    text: cityName        
    Label {
      text: timeOffSet + currentSystemTime
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我的ListView显示的是修改后的输出,而不是直接输出listModel元素。我需要每分钟更新一次ListView元素,以显示某个城市的当前时间。我计划使用计时器每分钟更新一次。

如何更新每个listView元素?

qt listview qml qtquick2

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

将背景图像添加到QQuickItem

我用它创建了一个QPixmap并绘制了较小的QPixmaps QPainter.我想用图像作为背景QQuickItem.是否有捷径可寻?

qt qml qtquick2

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

如何在Qt/QML中使图像的透明部分不可选

我已经将PNG图像加载到我的QML代码中并启用了拖动它.

Image {
    source: "image.png"
    width: 128
    height: 128

    MouseArea {
        anchors.fill: parent
        drag.target: parent
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是整个图像是可选择的,甚至是我需要在这些区域上禁用选择的透明部分.我甚至试图Canvas从图像中制作,但问题仍然存在.

Canvas {
    width: 128
    height: 128

    Component.onCompleted: loadImage("image.png")
    onImageLoaded: requestPaint()
    onPaint: {
        var ctx = getContext("2d")
        var im = ctx.createImageData("image.png")
        im.data[3] = 128
        ctx.drawImage(im, 0, 0)
    }

    MouseArea {
        anchors.fill: parent
        drag.target: parent
    }
}
Run Code Online (Sandbox Code Playgroud)

这是唯一可以选择红色部分的图像:

image.png

任何的想法?

qml qt5 qtquick2

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

自定义形状后剪辑自定义QML项目的子项

我有一个QQuickItem创建的自定义,我想创建一个圆角的窗口。因此,我实施了QQuickPaintedItem并导出到QML。问题在于该项目的子项正在通过该项目的边界矩形扩展,该矩形是一个矩形,而不是我想要的圆角矩形。外观如下:

在此处输入图片说明

这是我的代码:

main.qml

import QtQuick 2.7
import QtQuick.Window 2.2
import mycustomlib 1.0

Window {
    id: wnd
    width: 300
    height: 280
    visible: true
    flags: Qt.FramelessWindowHint
    color: "transparent"
    x: 250
    y: 250

    MyCustomWindow {
        id: playerFrame
        anchors.fill: parent
        radius: 25

        Rectangle {
            color: "beige"
            anchors.margins: 5
            anchors.fill: parent
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QUrl>

#include "mycustomwindow.h"

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    qmlRegisterType<MyCustomWindow>("mycustomlib", 1, 0, "MyCustomWindow");

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qtquick2 qquickitem

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

正确关闭qml对话框

我一直在玩对话,有些东西困扰着我.

我有以下代码:

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Button {
        id: click
        x: 285
        y: 189
        text: qsTr("Click")
        onClicked: dlgTest.open()
    }

    Dialog{
        id:dlgTest
        visible:false
        contentItem: Rectangle{
            width: 300
            height: 300
            TextField{
                id: tfText
                anchors.top: parent.top
            }
            Button{
                anchors.top: tfText.bottom
                onClicked: dlgTest.close()
                text: "Close"
            }


        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我第一次打开它时,我将一些文本添加到TextField然后关闭它.但是,如果我再次打开它,文本仍将存在.我想要的是当我第一次打开它时(使用空的TextField)将对话框"重置"到它的原始状态.调用方法"close"似乎与将visible变为false完全相同.

有没有办法做这个"重置"?

我有一个其他对话框,有很多控件,很烦人必须手动恢复一切.

qt qml qtquick2 qtquickcontrols

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

VideoOutput QML的自定义源属性

VideoOutputQML对象提供自定义帧源到底需要做什么?

VideoOuput本身是否QAbstractVideoSurface向“源” 提供类的实例 ?

Qt5文档说了有关提供此问题的以下内容:

如果要扩展自己的C ++类以与VideoOutput互操作,则可以为基于QObject的类提供mediaObject属性,该属性公开具有可用QVideoRendererControl的QMediaObject派生类,也可以为基于QObject的类提供可写videoSurface属性可以接受基于QAbstractVideoSurface的类,并且可以遵循正确的协议向其提供QVideoFrame。

根据以下文档,我执行了以下操作:

  1. 我implmented我自己的类myFrameProvider来源于QObject具有可写的videoSurface属性。
  2. 使一个类连接到以下类,该类将帧发送到myFrameProvider。
  3. 实例化myFrameProvider类,并使其在与“ VideoOutput”小部件相同的QML上下文中可访问。

之后-每当访问“ videSurface”属性时,我都会遇到段错误。我应该设置自己的视频界面属性吗?

c++ video qt qtquick2

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

如何调整QImage或QML Image的大小以适合父容器而不破坏Image的长宽比

场景:
我在QML中有一个Image组件,其中包含一个纵横比不同的QImage

码:

Window {
  id: app_window
  visible: true

  Rectangle {
    id: my_image_view_container
    width: app_window.width
    height: app_window.height

    Image {
       id: my_image
       // changes at runtime based on the image my app selects
       source: "random/path/to/an/image.jpg"
       width: sourceSize.width
       height: sourceSize.height
       scale: Qt.KeepAspectRatio
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

问:
我如何设定widthheightmy_image_view_container,以适应my_image完全内my_image_view_container不影响到其长宽比?

qt image qimage qml qtquick2

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

在多个QML文件中共享颜色值和其他只读值

例如,我正在寻找一种在多个QML文件之间共享只读值的简单方法。可以说我有一个label元素:

        Label {
            id: titleLabel
            text: listView.currentItem ? listView.currentItem.text : "IDEAL Networks"
            font.pixelSize: 20
            elide: Label.ElideRight
            horizontalAlignment: Qt.AlignLeft
            verticalAlignment: Qt.AlignVCenter
            Layout.fillWidth: true
            color: red;
            padding: {
                left: 14
            }
        }
Run Code Online (Sandbox Code Playgroud)

colorpadding值需要在其他QML文件和同一文件的其他领域使用。

除了重新键入red和在多个位置14之外,还有一种方法可以创建包含这些值的共享库,从而使以后更容易进行全局更新?

*更新*

我已按照此处的说明进行操作:http : //doc.qt.io/qt-5/qtqml-modules-qmldir.html

但是,当导入自定义CustomStyles 1.0模块时,出现错误-未安装模块“ CustomStyles”。

//Style.qml with custom singleton type definition
pragma Singleton
import QtQuick 2.0

QtObject {
    property int textSize: 20
    property color textColor: "green"
}

// qmldir declaring the singleton type
module CustomStyles
singleton Style …
Run Code Online (Sandbox Code Playgroud)

qt qml qt-quick qt5 qtquick2

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

QML - 创建可重用的ListView标头组件

我在一个页面上有3个列表视图,我想创建一个ListView可以与每个列表一起使用的单个标题组件.

所以我有一个ListView:

            ListView {
                id: listOne
                spacing: 5
                header: headerComponent
                model: ListOneModel
            }
Run Code Online (Sandbox Code Playgroud)

它引用了以下标头组件:

            Component {
                id: headerComponent

                Rectangle {
                    width: ListView.view.width
                    height: 50
                    Label {
                        text: "List One"
                        font.pixelSize: 20
                        elide: Label.ElideRight
                        width: ListView.view.width
                        padding: {
                            left: 14
                        }
                        background: Rectangle {
                            color: "red"
                        }
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

如何使标题组件可重用,以便当我连接ListView到标题时,我还可以传入不同的标题?

我知道我可以更改标题组件并添加titleText属性,如下所示:

            Component {
                id: headerComponent

                property string titleText: "My Title"

                Rectangle {
                    width: ListView.view.width
                    height: 50
                    Label {
                        text: titleText
                        font.pixelSize: 20
                        elide: Label.ElideRight …
Run Code Online (Sandbox Code Playgroud)

qt qml qt-quick qt5 qtquick2

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

标签 统计

qtquick2 ×10

qml ×9

qt ×9

qt5 ×3

c++ ×2

qt-quick ×2

image ×1

listview ×1

qimage ×1

qquickitem ×1

qtquickcontrols ×1

video ×1