Qt5-在QML TableView中显示动态数据模型

达韦普米勒

我正在为GUI开发跟踪窗口。我在QML端使用TableView元素来显示将不断更新的数据。如何用数据填充此元素?元素的数量以及每个元素的数据每隔几毫秒发生一次更改。

我认为信号/插槽实现会是理想的,当数据更改时,会产生一个触发插槽功能以更新TableView中显示的值的信号?遵循这些原则。

提前致谢!

main.qml

import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
import QtQuick.Dialogs 1.1
import QtQuick 2.1

....
TableView {
                anchors.fill: parent
                id: traceTable
                //table data comes from a model
                model: traceTableModel
                //Component.onCompleted: classInstance.popAndDisplayMsg(classInstance)
                TableViewColumn { role: "index"; title: "Index";  width: 0.25 * mainWindow.width; }
                TableViewColumn { role: "type"; title: "Type"; width: 0.25 * mainWindow.width; }
                TableViewColumn { role: "uid"; title: "ID"; width: 0.25 * mainWindow.width; }
                TableViewColumn { role: "timestamp"; title: "Timestamp"; width: 0.25 * mainWindow.width; }


            }
....

main.cpp

#include "class_header.hpp"
#include <QtQuick/QQuickView>
#include <QGuiApplication>
#include <QQmlContext>

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

    QQuickView view;

    class_name instance;

    view.rootContext()->setContextProperty("classInstance", &instance);

    view.setResizeMode(QQuickView::SizeRootObjectToView);
    view.setSource(QUrl("qml/main.qml"));
    view.show();
    return app.exec();
}

class_header.hpp

#ifndef class_name_HPP
#define class_name_HPP

#include <QtQuick/QQuickItem>
#include <polysync_core.h>
#include <glib.h>
#include <QString>
#include <QDebug>


class class_name : public QQuickItem
{
    Q_OBJECT
    //Maybe some Q_Properties here?

    public:

        //constructor
        class_name(QQuickItem *parent = 0);
        //deconstructor
        ~class_name();

    signals:
        void dataChanged();

    public slots:
        int updateInfo(//pass some data);

};

#endif // class_name_HPP
库巴并没有忘记莫妮卡

您对QML中的模型的使用很奇怪。您不想对每列都使用自定义角色。这是没有道理的。您也不需要自定义QQuickItem类。

基本过程是:

  1. 正确实现从QAbstractListModel派生的类QAbstractTableModel

  2. 将此类的实例绑定到QML视图的模型。

这里是供您细读的完整参考(如在编译和运行中):

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Qt5-在QML TableView中显示动态数据模型

来自分类Dev

QML QT5中如何显示分配的属性组件?

来自分类Dev

Qt5(QML)中ui.qml文件的用途是什么?

来自分类Dev

是否可以从Qt5 QML中的信号断开所有插槽?

来自分类Dev

是否需要Q_INVOKABLE才能在Qt5中从QML调用公共QObject函数?

来自分类Dev

在Qt5和QML中检测鼠标光标何时位于不规则形状的图片上

来自分类Dev

Qt5 QML ListView内容缩放

来自分类Dev

qt5 qml c ++交互

来自分类Dev

带有qt5的无框窗户(qml)

来自分类Dev

部署Qt5 QML应用程序

来自分类Dev

带有qt5(qml)的无框窗户

来自分类Dev

使用qml从qt5发布HTTP请求

来自分类Dev

QT5:多次实例化相同的 QML 组件

来自分类Dev

使用 Qt5 抓取动态 Javascript

来自分类Dev

Qt5 QSerialPort写入数据

来自分类Dev

QT5中的TableView不显示MYSQL数据,仅显示空行

来自分类Dev

在Qt5中创建QVideoWidget

来自分类Dev

获取Qt5中的语言列表

来自分类Dev

在QT5中实现原子队列

来自分类Dev

QT5中的信号和插槽

来自分类Dev

Qt5中的OpenGl实例渲染

来自分类Dev

Qt5 / PyQt5:具有QML前端和Python后端的自定义QML组件

来自分类Dev

Qt5 / PyQt5:具有QML前端和Python后端的自定义QML组件

来自分类Dev

如何实时切换Qt5控件QML样式

来自分类Dev

Qt5 QML如何防止Slider流氓初始值

来自分类Dev

Qt5 QML,为什么在不更改的情况下调用onHeightChanged和onWidthChanged?

来自分类Dev

Qt5 QML,为什么在不更改的情况下调用onHeightChanged和onWidthChanged?

来自分类Dev

QT5 C++ 信号到 QML 插槽不起作用

来自分类Dev

使用动态插件在Qt5中处理QMetaType注册