tôi chắc chắn rằng tất cả các bạn đang ở thời điểm đó - xác định một Q_OBJECT
mang theo một tấn Q_PROPERTIES
, tất cả với accessors khá tầm thường:QT Properties - cú pháp đường hoặc công cụ phát triển
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 ...]
}
với một tấn accessors tất cả tìm kiếm như thế:
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; }
cho rằng QDjangoModel sử dụng MetaObject mẫn, tôi không thể dựa vào tính chất năng động ở đây (bên cạnh đó, tôi thích tính chất tĩnh) - câu hỏi là, là có bất kỳ công cụ mà sẽ tiết kiệm cho tôi hướng dẫn lao động?
Trình tạo ảnh Qt dường như không có tùy chọn để chỉ khai báo và xác định một số trình truy cập mặc định và biến riêng tư tương ứng của chúng. Mọi thứ khác? Chắc chắn nó phải làm phiền nhiều nhà phát triển hơn là bản thân tôi.
Hoặc có lẽ chỉ có một mẫu phát triển khác mà người khác sử dụng?
Vâng, điều đó luôn làm tôi phiền lòng. Q_PROPERTY luôn luôn đến với tôi như là đường. Bạn luôn có thể có một thành viên QVariantMap với các hàm get/set chung. Hoặc, nếu bạn thích, một 'enum' tùy chỉnh với một thành viên' QHash '. –
Phlucious
Trường hợp duy nhất tôi xem xét Q_PROPERTY là khi phát triển plugin cho Nhà thiết kế. – Phlucious