【发布时间】:2019-04-09 06:54:40
【问题描述】:
我想创建一个ShortcutItems 的列表作为QObject 并将ShortcutItems 添加到其中。例如,我有这个:
#include <QObject>
class ShortcutItem : public QObject
{
Q_OBJECT
Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged)
Q_PROPERTY(QString action READ action WRITE setAction NOTIFY actionChanged)
Q_PROPERTY(QString icon READ icon WRITE setIcon NOTIFY iconChanged)
Q_PROPERTY(QString font READ font WRITE setFont NOTIFY fontChanged)
Q_PROPERTY(int size READ size WRITE setSize NOTIFY sizeChanged )
public:
explicit ShortcutItem(QObject *parent = nullptr);
QString title() const;
QString action() const;
QString icon() const;
QString font() const;
int size() const;
void setTitle(const QString &title);
void setAction(const QString &action);
void setIcon(const QString &icon);
void setFont(const QString &font);
void setSize(const int &size);
private:
QString _title;
QString _action;
QString _icon;
QString _font;
int _size;
signals:
void titleChanged(QString title);
void actionChanged(QString action);
void iconChanged(QString icon);
void fontChanged(QString font);
void sizeChanged(int size);
public slots:
};
我可以像这样在 QML 中使用:
U.Shortcut{
title: "title"
icon: "\uf015"
font: "fontawesome"
action: "open"
size: 1
}
但我想创建一个快捷方式列表(比如 ListModel 里面有 ListElements),如下所示:
U.Shortcuts {
U.Shortcut {
}
U.Shortcut {
}
}
如何创建这个?
https://doc.qt.io/qt-5/qtqml-cppintegration-definetypes.html#specifying-default-properties-for-qml-object-types 了解更多信息的好地方
【问题讨论】:
-
您想对填充的
U.Shortcuts做什么?为什么不能使用ListModel定义快捷方式的信息?list<Action>怎么样? -
@GrecKo 我需要继承并使用我自己的模型,这是一个 cpp 模型,据我所知,我不能使用 listmodel,关于第二部分,我不知道你对 List
!