5
我相信所有的你在這一點上 - 定義Q_OBJECT
攜帶一噸Q_PROPERTIES
,都帶有相當瑣碎存取: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成員。或者,如果你願意,一個定製的'enum'成員'QHash'。 –
Phlucious
當我考慮Q_PROPERTY時,唯一的情況是爲Designer開發一個插件。 – Phlucious