2015-05-18 103 views
1

我找不到了,QT如何选择使用Qt对象中是否有属性,用作默认值属性?

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

的实况映射到一个模型中的插件的相应的属性(4.8)告诉一些关于用户属性,但哪一个?

在示例中,text属性用于行编辑,spin-box的current-index。 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文本有其用户属性设置为true。根据文档(http://doc.qt.io/qt-4.8/properties.html

USER属性指示属性是否被指定为该类的面向用户或用户可编辑属性。通常,每个类只有一个USER属性(默认为false)。例如,QAbstractButton :: checked是(可选)按钮的用户可编辑属性。请注意,QItemDelegate获取并设置小部件的USER属性。