标签: qml

我们如何在 QML 中使元素具有发光脉动效果?

我有一个 css 动作,我想在 qml 中复制,如何在 QML 中制作按钮(或任何其他元素)动画以产生脉动效果,如以下 CSS:

@import "bourbon";

$n:6;
$w:20px;//dot size
$e:4;//dot margin factor
$hsl:160;//start color
$bg:#333;

html{
    background:$bg;
  height: 100%;
  backface-visibility: hidden;
}   

#c{
    position: absolute;
    top:50%;
    left:50%;   
    margin-left: -(($n - 1)*($w + $w*$e))/2 - ($w/2);
}

@mixin shadow($b,$s,$sm,$c){
    box-shadow:
        0 0 8px 6px $c,
        0 0 $b $s $bg,
        0 0 $b ($s + $sm) $c;
}

.s{
    width: $w;
    height: $w;
    border-radius: 50%;
    cursor:pointer;
    float: left;
  @include transition(all .2s);
    &:nth-child(n+2){
        margin-left: $w*$e;
    } …
Run Code Online (Sandbox Code Playgroud)

css animation qt qml qt-quick

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

组件的 QML 工具提示

我想为a 中的ToolTip代表做一个. 如果我使用 an ,它工作得很好,但是,我不能使用 an,因为它破坏了 的选择模式。如果我尝试在我的委托组件中定义,我会收到错误ComponentTableViewItemDelegateItemDelegateTableViewToolTip

 qrc:/FileSystem.qml:34 Invalid component body specification
Run Code Online (Sandbox Code Playgroud)

如何使用工具提示Component

这是我的代码:

TreeView {
    id: view
    anchors.fill: parent
    sortIndicatorVisible: true
    model: fileSystemModel
    rootIndex: rootPathIndex
    selection: sel
    selectionMode: 2
    Component {
        id: mycomp
        Row{
            id: myrow
            CheckBox{
                id: cbox
                anchors.baseline: ctext.baseline
            }
            Text{
                id: ctext
                text: styleData.value
                color: styleData.textColor
                width: namecolumn.width-cbox.width-myrow.x
                elide: Text.ElideRight
            }
        }
        NC.ToolTip {
            parent: mycomp
            visible: hovered
            delay: 1000
            text: qsTr(styleData.value)
        }
    }

    TableViewColumn { …
Run Code Online (Sandbox Code Playgroud)

qt qml

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

Qt - 为什么无法使用 QFile 和从 FileDialog 获取的目录读取文件?

我正在使用 QFile 读取 Qt 5.12 上的文件。我尝试从计算机中读取文件,但是当我使用从 FileDialog 读取的目录时,其前缀为“file:///”。谁能告诉我为什么这是错误的以及如何使用从 FileDialog 获取的 URL?

谢谢!

QFile file("C:/Users/HuuChinhPC/Desktop/my_txt.txt"); // this work
//QFile file("file:///C:/Users/HuuChinhPC/Desktop/my_txt.txt"); //didn't work
QString fileContent;
if (file.open(QIODevice::ReadOnly) ) {
    QString line;
    QTextStream t( &file );
    do {
        line = t.readLine();
        fileContent += line;
     } while (!line.isNull());

    file.close();
} else {
    emit error("Unable to open the file");
    return QString();
}
Run Code Online (Sandbox Code Playgroud)

c++ file-io qt qml qtquick2

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

通过 C++ 单击按钮后更新 QML TableView

我想通过按按钮向 QML 表视图添加一定数量的行。用户界面如下所示:

在此输入图像描述

按“更新列表模型”后,TableView 中应出现一个新行。

我的代码看起来像这样(如下)。我想该addPerson方法必须发出dataChanged事件才能使其正常工作。我怎样才能做到这一点?或者是否有更好的解决方案来同步 QML 表视图与 C++ 模型?

主程序

#include <QGuiApplication>
#include <QQmlApplicationEngine>

#include "MainWindow.h"
int main(int argc, char *argv[]) {
    QGuiApplication app(argc, argv);

    qmlRegisterType<TableModel>("TableModel", 0, 1, "TableModel");

    QQmlApplicationEngine engine;
    MainWindow mainWindow;

    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

主窗口.h

#pragma once

#include <QQmlApplicationEngine>
#include <QtQuick>

#include "TableModel.h"

class MainWindow : public QObject {
    Q_OBJECT;

public:
    explicit MainWindow() {
        engine_.load(QUrl(QStringLiteral("qrc:/main.qml")));

        QObject *rootObject = engine_.rootObjects().first();
        QObject::connect(rootObject, SIGNAL(on_ButtonUpdateListModel_click()), this, SLOT(on_ButtonUpdateListModel_click()));
    }

public slots:

    void on_ButtonUpdateListModel_click() {         
        QQuickView view;
        QQmlContext *ctxt …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qtquick2

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

QML TableView 禁用水平滚动条

我正在使用TableViewQML 组件。我那里有 3 列。每列宽度设置为表格总宽度除以 3。这引入了一些小数部分,结果,水平滚动条始终在底部可见:

在此输入图像描述

我想禁用这个滚动条,但不知道该怎么做。我正在使用TableViewQtQuick.Controls 1.4(旧的)中的 QML。Qt版本是5.12.3。

qt qml

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

可聚焦的 Qml 组件(将我的控件聚焦在选项卡上)

我在 qml 中创建了一个自定义按钮,我想重点关注按“选项卡”,我的意思是“如果它位于队列顶部,则按选项卡跳转到它”默认情况下,qml 在按钮本身和其他一些控件上具有此功能也是,但是不存在的新组件呢,我看到了 qml 的“FocusScope”控件,但没有使用它的文档,我不确定如何实现它,这是我的控件:

import QtQuick 2.4

Item {
    id: button
    width: innerText.width + 10
    height: 30
    property alias text: innerText.text;
    property alias font: innerText.font;
    property color color: "#00171f"
    property color hoverColor: "#00395f"
    property color pressColor: "#3E65FF"
    property int fontSize: 12
    property int borderWidth: 0
    property int borderRadius: 2
    property bool highlighted : true
    onEnabledChanged: state = ""
    signal clicked
    property var background
    Rectangle {
        id: rectangleButton
        anchors.fill: button
        radius: borderRadius
        color: button.enabled ? button.color : "grey"
        border.width: …
Run Code Online (Sandbox Code Playgroud)

qt qml

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

qml 无法打开图像

我正在尝试将图像添加到我的 qml 项目并显示它。图片部分:

Image {
    id:menuLogo
    width:400
    height:400
    source: "design/logo.png"
}
Run Code Online (Sandbox Code Playgroud)

我的项目结构。在 qt 中输入路径的第一部分时甚至会建议文件名。

在此输入图像描述

我在运行代码时遇到的错误:

qrc:/Menu.qml:9:5:QML 图像:无法打开:qrc:/design/logo.png

qt qml

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

在 QML 2.0 中设置忙碌指示器的样式

我正在使用忙碌指示器来显示中间进度,并且我想更改圆圈的颜色。我提到了自定义忙碌指示器链接,但这正在更改默认动画和其他内容。此外,它很难理解,因为没有对此进行解释。

我只想更改颜色,动画应该与默认值相同。请建议。

qt busyindicator qml qtquick2

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

QML - GridLayout - ROW 和 COLUMN Span - 理解

我正在尝试学习 QML,目前我在理解 rowSpan 和 columnSpan 方面遇到了一些问题,如果这个问题对你们中的一些人来说可能听起来很愚蠢,那么很抱歉。


我学到的是:

如果我错了,请纠正我,但在GridLayout中应该是这样的:

  • Layout.row——表示对象所在的行;
  • Layout.column - 表示对象所在的列;
  • Layout.rowSpan - 表示对象应该拉伸多少行;
  • Layout.columnSpan - 指示对象应拉伸多少列;

我正在尝试做什么:

好吧,在这种情况下,我试图在这里重新创建这个布局 在此输入图像描述

这种布局理论上应该具有以下特点:

  • 实际的GridLayout应由24 列9 行组成
  • 红色形状应位于 -> col 0, row 1 -> colSpan 3, rowSpan 7
  • 蓝色形状应位于 -> col 3, row 1 -> colSpan 8, rowSpan 1
  • 紫色形状应位于 -> col 3, row 4 -> colSpan 6, rowSpan 3

或者至少到目前为止我是这么理解的。


问题:

在我用 col、row 以及 colSpan 和 rowSpan 编码 QML 后,我得到了这个。

在此输入图像描述


我的代码:

import …
Run Code Online (Sandbox Code Playgroud)

qt grid-layout qml qqmlcomponent

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

如何使 QML ListView 宽度成为其委托的宽度?

我创建了一个用户可以滚动的 ListView。我注意到滚动条没有出现,滚动也不起作用。

我发现问题是因为我将 ListView 宽度指定为 contentWidth。例如,如果我将其设置为 100,则会出现滚动条并且我可以滚动。但是,我希望 ListView 宽度由其内容决定(这就是我使用 contentWidth 的原因)。我做错了吗,我发现的有关此事的所有其他主题都说 contentWidth 应该起作用......

import QtQuick 2.12
import QtQuick.Window 2.12
import QtGraphicalEffects 1.0
import QtQuick.Controls 2.15
    
Window {
    id: root
    width: 1200
    height: 800
    visible: true
    title: qsTr("Server Manager")
    color: "black"

    ListView {
        spacing: 10
        height: 100
        width: contentWidth

        ScrollBar.vertical: ScrollBar {
            active: true
        }

        model: ["test", "6", "123", "22", "55"]

        delegate: Row {
            width: contentWidth
            TextField {
                width: 150
                height: 80
                text: "Sample"
            }
            TextField {
                width: 150
                height: 80 …
Run Code Online (Sandbox Code Playgroud)

qt qml

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

标签 统计

qml ×10

qt ×10

qtquick2 ×3

c++ ×2

animation ×1

busyindicator ×1

css ×1

file-io ×1

grid-layout ×1

qqmlcomponent ×1

qt-quick ×1