私はあなたのすべてが、その点にあったと確信している - すべてではなく些細なアクセサと、Q_PROPERTIES
のトンを運ぶQ_OBJECT
を定義する:QTプロパティ - シンタックスシュガーや開発ツール
class ORM_Customer : public QDjangoModel
{
Q_OBJECT
Q_PROPERTY(QString firstname READ firstname WRITE setFirstname)
Q_PROPERTY(QString lastname READ lastname WRITE setLastname)
Q_PROPERTY(QString phone READ phone WRITE setPhone)
Q_PROPERTY(QString address1 READ address1 WRITE setAddress1)
Q_PROPERTY(QString address2 READ address2 WRITE setAddress2)
Q_PROPERTY(QString houseno READ houseno WRITE setHouseno)
Q_PROPERTY(QString postcode READ postcode WRITE setPostcode)
[... snip ...]
}
アクセサのトンとすべてのことのように見える:
QString ORM_Customer::firstname() const { return m_firstname; }
QString ORM_Customer::lastname() const { return m_lastname; }
void ORM_Customer::setFirstname(QString &n) { m_firstname = n; }
void ORM_Customer::setLastname(QString &n) { m_lastname = n; }
QDjangoModelは、メタオブジェクトのイントロスペクションを使用していることを考えると、私は(ほかに、私は、静的プロパティが好き)、ここでの動的な特性に依存することはできません - 質問があり、私のマニュアルを保存する任意のツールがあります労働?
Qt Creatorでは、デフォルトアクセサーとそれぞれのプライベート変数を宣言して定義するオプションはありません。それは確かに私自身よりも多くの開発者を悩ませていたに違いない。
他の開発パターンがありますか?
はい、それはいつも気になります。 Q_PROPERTYはいつも砂糖のように私に出会いました。ジェネリックget/set関数を持つQVariantMapメンバをいつでも持つことができます。または、もし望むのであれば、メンバ 'QHash 'を持つカスタムの' enum'。 –
Phlucious
私はQ_PROPERTYを考慮する唯一のケースは、Designer用のプラグインを開発する場合です。 – Phlucious