标签: qml

Qt 5有没有DatePicker控件?

我正在为QtQuick 2.0编写我的第一个QML/Javascript应用程序.我需要放置一个DatePicker控件,但是我没有在QtQuick.Controls下找到任何像这样的控件 - 实际上也没有.

我开始相信没有办法在QML中调用'native'DatePicker.我必须实现一个还是存在一个?

datepicker qml qtquick2

11
推荐指数
2
解决办法
8870
查看次数

如何在Qt Creator中的qml.qrc文件夹下组织文件?

如果我在qml.qrc文件下的不同文件夹中有一堆资源(图像,字体等),有没有办法在Qt Creator中组织它?

例如,如果我在qml.qrc文件中有以下内容:

<RCC>
    <qresource prefix="/">
        <file>main.qml</file>
        <file>pages/MainPage.qml</file>
        <file>pages/NewContactPage.qml</file>
        <file>images/plus.png</file>
        <file>images/minus.png</file>
        <file>images/exit.png</file>
    </qresource>
</RCC>
Run Code Online (Sandbox Code Playgroud)

它将在Qt Creator中显示为一个长列表,如下所示:

Resources
    qml.qrc
        /
          main.qml
          pages/MainPage.qml
          pages/NewContactPage.qml
          images/plus.png
          images/minus.png
          images/exit.png
Run Code Online (Sandbox Code Playgroud)

由于这个列表在项目的持续时间内可能会非常长,如果这些列表更好地组织并分成像我们目录中的文件夹那样会很好.有任何想法吗?

qt qt-creator qml

11
推荐指数
4
解决办法
9932
查看次数

如何使用比例大小的项目创建QML GridLayout?

潜在相关:https://stackoverflow.com/a/30860285/3363018

我一直在尝试使用跨越可变数量的行和列的项创建QML布局.因此,例如,一个跨越两行和四列的矩形,一个在其右侧,跨越一行和两列,另一个跨越三行和五列.创建此的一般尝试如下:

import QtQuick 2.5
import QtQuick.Layouts 1.2
import QtQuick.Controls 1.4

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

    GridLayout {
        anchors.fill: parent

        columns: 5
        rows: 2

        Rectangle {
            Layout.column: 0
            Layout.columnSpan: 4
            Layout.row: 0
            Layout.rowSpan: 2

            Layout.fillHeight: true
            Layout.fillWidth: true

            color: "red"
        }

        Rectangle {
            Layout.column: 4
            Layout.columnSpan: 1
            Layout.row: 0
            Layout.rowSpan: 2

            Layout.fillHeight: true
            Layout.fillWidth: true

            color: "green"
        }

        Rectangle {
            Layout.column: 0
            Layout.columnSpan: 5
            Layout.row: 2
            Layout.rowSpan: 3

            Layout.fillHeight: true
            Layout.fillWidth: …
Run Code Online (Sandbox Code Playgroud)

qt qml

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

QML Canvas:渲染中的不同行为

我试图使用Canvas对象在QML中绘制环形扇区.首先,我编写了javascript代码,并通过在浏览器中执行它验证了它是正确的.

这里是:

var can = document.getElementById('myCanvas');
var ctx=can.getContext("2d");
var center = {
  x: can.width / 2,
  y: can.height / 2
};
var minRad = 100;
var maxRad = 250;

var startAngle = toRad(290);
var endAngle = toRad(310);

drawAxis();
drawSector();

function drawSector() {
  var p1 = {
    x: maxRad * Math.cos(startAngle),
    y: maxRad * Math.sin(startAngle)
  }
  p1 = toCanvasSpace(p1);

  var p2 = {
    x: minRad * Math.cos(startAngle),
    y: minRad * Math.sin(startAngle)
  }
  p2 = toCanvasSpace(p2);

  var p3 = {
    x: minRad …
Run Code Online (Sandbox Code Playgroud)

html javascript qt canvas qml

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

QML console.log()和console.debug()不写入控制台

我在Fedora 23上使用Qt 5.6,我注意到console.log()并且console.debug()没有向控制台写任何东西.我的示例代码:

import QtQuick 2.6
import QtQuick.Window 2.2

Window {
    visible: true

    Text {
        text: qsTr("Hello World")
        anchors.centerIn: parent

        Component.onCompleted: {
            console.warn("warn completed")
            console.log("log completed")
            console.error("error completed")
            console.debug("debug completed")
            console.exception("exception completed")
            console.info("info completed")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

打印到控制台:

QML debugging is enabled. Only use this in a safe environment.
qml: warn completed
qml: error completed
qml: exception completed
onCompleted (qrc:/main.qml:16)
qml: info completed
Run Code Online (Sandbox Code Playgroud)

所以warn,error,exception,和info做工精细.我究竟做错了什么?

编辑#1:项目是新创建的,我的所有来源:

main.cpp中

#include <QGuiApplication> …
Run Code Online (Sandbox Code Playgroud)

qt fedora qml

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

Qt - 启用Qml调试.只能在安全的环境中使用它

我正在尝试运行一个非常简单的程序,只需在单击"退出"按钮时关闭窗口,但如果包含该按钮的应用程序窗口显示,则获取以下输出:

Starting C:\Users\Ola\Desktop\signal_slot1-build-desktop-Qt_4_8_1_for_Desktop_-_MSVC2008__Qt_SDK__Debug\debug\signal_slot1.exe...
Qml debugging is enabled. Only use this in a safe environment!
Run Code Online (Sandbox Code Playgroud)

在这种情况下我该怎么办?

qt qml

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

如何在QML上重用代码

我有这条QML代码:

   Column {
       spacing: units.gu(2)
       anchors {
           fill: parent
           centerIn: parent
       }
       Row {
           spacing: units.gu(4)
           ...
       }
       Row {
           spacing: units.gu(4)
           ...
       }
       Row {
           spacing: units.gu(4)
           ...
       }
       Row {
           spacing: units.gu(4)
           ...
       }
    }
Run Code Online (Sandbox Code Playgroud)

关于QML编程的最佳实践,如何重用代码以避免常见元素的重复属性?例如,在上面的示例中,避免行"spacing:units.gu(4)".

qt qml

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

如何将qt5 qml插件部署到android?

我试图从Qt 5.1.0安装程序导入TimeExample Qt快速扩展插件.

libqmlqtimeexampleplugin.so 是成功建造的 build-plugins-Android_for_arm_GCC_4_6_Qt_5_1_0-Debug/imports

然后我从Qt Creator创建了简单的Qt Quick2应用程序(内置元素).我应该在应用程序项目文件中添加什么来获取输出".apk"包中的QML插件?

现在它说:

W/Qt(23528):assets:/qml/TimeExampleTest/main.qml:2():assets:/qml/TimeExampleTest/main.qml:2:1:模块"TimeExample"未安装

main.qml

 import QtQuick 2.0

 import TimeExample 1.0 // import types from the plugin

 Rectangle {
    width: 360
    height: 360
    Text {
        text: qsTr("Hello World")
        anchors.centerIn: parent
    }
    MouseArea {
       anchors.fill: parent
        onClicked: {
          Qt.quit();
       }
    }

   Clock { // this class is defined in QML (imports/TimeExample/Clock.qml)

        Time { // this class is defined in C++ (plugin.cpp)
            id: time
      }

        hours: time.hour
      minutes: time.minute

    }
}
Run Code Online (Sandbox Code Playgroud)

TimeExampleTest.pro

folder_01.source = qml/TimeExampleTest …
Run Code Online (Sandbox Code Playgroud)

android qml qt5

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

如何在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
查看次数

在QML中动态创建ListModel

当我需要在运行时创建任何QML组件时,我可以使用该指南:http: //qt-project.org/doc/qt-5/qtqml-javascript-dynamicobjectcreation.html

即只需调用Qt.createComponent和component.createObject

但我找不到如何在运行时创建ListModel?用qml,而不是用c ++.

你可以问,为什么我需要它.所以,我有一个嵌套的ListModel:有外部模型,它委托包含的内部模型.因此,当我调用outer_model.append({})时,我必须为内部模型传递新创建的ListModel .我不能在外部委托中使用静态定义的内部模型,因为我无法在运行时访问此类模型.顺便说一句,可以以某种方式访问​​它吗?

PS也许在javascript中尝试管理模型是完全错误的想法?

javascript runtime qml qt5

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

标签 统计

qml ×10

qt ×6

javascript ×3

qt5 ×3

qtquick2 ×2

android ×1

canvas ×1

datepicker ×1

fedora ×1

html ×1

qt-creator ×1

qt-quick ×1

runtime ×1