2015-05-18 1 views
1

я не мог узнать, как Qt выбирает соответствующее свойство для виджета отображается в модели с использованиемЕсть ли свойство в Qt-объектах, которое используется как свойство значения по умолчанию?

QDataWidgetMapper::addMapping (QWidget * widget, int section) 

доку (4,8) говорит что-то о пользователе собственности, но какой?

В примерах свойство text используется для редактирования строки, current-index для spin-box. Есть ли свойство в Qt-объектах, которое используется как свойство значения по умолчанию? Если так, то я пропустил что-то важное.

+1

Да, виджеты обычно имеют свойство пользователя. ['Атрибут USER указывает, указано ли свойство в качестве свойства класса для пользователя или для пользователя. Обычно в классе есть только одно свойство USER (по умолчанию false). например, QAbstractButton :: checked - это редактируемое пользователем свойство для кнопок (с возможностью проверки). Обратите внимание, что QItemDelegate получает и устанавливает свойство пользователя USER. '] (Http://doc.qt.io/qt-4.8/properties.html#qt-s-property-system) – thuga

+0

Я не уверен, что я понимаю ваш вопрос , но [проверьте это] (http://doc.qt.io/qt-5/properties.html) обратите внимание, что некоторые свойства имеют методы «RESET» для восстановления значения по умолчанию. –

+1

"пользовательская собственность, но какой из них" Есть только один, или никто. Существует несколько свойств, и самое большее одно из них может быть объявлено как пользовательское свойство. –

ответ

3

Для QLineEdit, текст свойство используется, потому что QLineEdit объявлен следующим образом:

class Q_WIDGETS_EXPORT QLineEdit : public QWidget 
{ 
    Q_OBJECT 
    Q_PROPERTY(QString inputMask READ inputMask WRITE setInputMask) 
    Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged USER true) 
    Q_PROPERTY(int maxLength READ maxLength WRITE setMaxLength) 
    ... 

Обратите внимание, что текст Q_PROPERTY имеет свое свойство USER установлен верно. В соответствии с документацией (http://doc.qt.io/qt-4.8/properties.html)

Атрибут USER указывает, указано ли свойство как пользовательское или редактируемое пользователем свойство для класса. Обычно в классе есть только одно свойство USER (по умолчанию false). например, QAbstractButton :: checked - это редактируемое пользователем свойство для кнопок (с возможностью проверки). Обратите внимание, что QItemDelegate получает и устанавливает свойство USER виджетов.

Смежные вопросы