私は Qt にまったく慣れていないので、おそらくかなり明白な質問をしていると思います。
C++ で作成したいすべてのカスタム QML GUI 要素のスーパー タイプを作成したいと考えています。このスーパー タイプは、定義済みの状態を QML アイテムに追加することになっています。これに似たもの:
import StatedGuiElement 1.0
import QtQuick 2.0
Item {
width: 300; height: 200
StatedGuiElement {
id: aStatedGuiElement
anchors.centerIn: parent
width: 100; height: 100
//some visible Custom Gui Elements
states:[
State {
name: "A_STATE"
},
State {
name: "ANOTHER_STATE"
}]
}
このチュートリアル ( http://doc.qt.io/qt-5/qtqml-tutorials-extending-qml-example.html )から簡単なカスタム アイテムを作成する方法を知っています。から継承するC++クラスの列挙型を使用して状態を定義できると思いQQuickItem
ます。ただし、このチュートリアルでは、状態リストのようなより複雑な Qt Quick 要素を作成する方法は示していません。
class StatedGuiElement : public QQuickItem
{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName)
//pass States via Q_PROPERTY?
public:
//define Enum for fixed States here?
//ENUM STATES {A_STATE, ANOTHER_STATE}
StatedGuiElement( QQuickItem *parent = 0);
QString name() const;
void setName(const QString &name);
private:
QString m_name;
//Some List of States?
signals:
public slots:
};
そこで、気になる疑問点は以下の通りです。
- QML State タイプを事前に定義して、それらを複数の要素で使用することさえ可能ですか?
- などの C++ クラスにステート リストなどの複雑な QML タイプを追加するにはどうすればよい
StatedGuiElement
ですか?