qdesigner_propertysheet_p.h
来自「奇趣公司比较新的qt/emd版本」· C头文件 代码 · 共 190 行
H
190 行
/******************************************************************************** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.**** This file is part of the Qt Designer of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file. Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************///// W A R N I N G// -------------//// This file is not part of the Qt API. It exists for the convenience// of Qt Designer. This header// file may change from version to version without notice, or even be removed.//// We mean it.//#ifndef QDESIGNER_PROPERTYSHEET_H#define QDESIGNER_PROPERTYSHEET_H#include "shared_global_p.h"#include "dynamicpropertysheet.h"#include <QtDesigner/propertysheet.h>#include <QtDesigner/default_extensionfactory.h>#include <QtCore/QVariant>#include <QtCore/QPair>#include <QPointer>class QLayout;class QDESIGNER_SHARED_EXPORT QDesignerPropertySheet: public QObject, public QDesignerPropertySheetExtension, public QDesignerDynamicPropertySheetExtension{ Q_OBJECT Q_INTERFACES(QDesignerPropertySheetExtension QDesignerDynamicPropertySheetExtension)public: QDesignerPropertySheet(QObject *object, QObject *parent = 0); virtual ~QDesignerPropertySheet(); virtual int indexOf(const QString &name) const; virtual int count() const; virtual QString propertyName(int index) const; virtual QString propertyGroup(int index) const; virtual void setPropertyGroup(int index, const QString &group); virtual bool hasReset(int index) const; virtual bool reset(int index); virtual bool isAttribute(int index) const; virtual void setAttribute(int index, bool b); virtual bool isVisible(int index) const; virtual void setVisible(int index, bool b); virtual QVariant property(int index) const; virtual void setProperty(int index, const QVariant &value); virtual bool isChanged(int index) const; virtual void setChanged(int index, bool changed); virtual bool dynamicPropertiesAllowed() const; virtual int addDynamicProperty(const QString &propertyName, const QVariant &value); virtual bool removeDynamicProperty(int index); virtual bool isDynamicProperty(int index) const; virtual bool canAddDynamicProperty(const QString &propertyName) const; void createFakeProperty(const QString &propertyName, const QVariant &value = QVariant());protected: bool isAdditionalProperty(int index) const; bool isFakeProperty(int index) const; QVariant resolvePropertyValue(const QVariant &value) const; QVariant metaProperty(int index) const; void setFakeProperty(int index, const QVariant &value); bool isFakeLayoutProperty(int index) const; bool isDynamic(int index) const;public: // For MSVC 6 enum PropertyType { PropertyNone, PropertyLayoutLeftMargin, PropertyLayoutTopMargin, PropertyLayoutRightMargin, PropertyLayoutBottomMargin, PropertyLayoutSpacing, PropertyLayoutHorizontalSpacing, PropertyLayoutVerticalSpacing, PropertySizeConstraint, PropertyBuddy, PropertyAccessibility, PropertyGeometry, PropertyCheckable};protected: enum ObjectType { ObjectNone, ObjectLabel, ObjectLayout, ObjectLayoutWidget, ObjectQ3GroupBox }; static ObjectType objectType(const QObject *o); static PropertyType propertyTypeFromName(const QString &name); PropertyType propertyType(int index) const; QObject *object() const; const QMetaObject *m_meta; const ObjectType m_objectType; class Info { public: Info(); QString group; QVariant defaultValue; uint changed: 1; uint visible: 1; uint attribute: 1; uint reset: 1; uint defaultDynamic: 1; PropertyType propertyType; }; Info &ensureInfo(int index); typedef QHash<int, Info> InfoHash; InfoHash m_info; QHash<int, QVariant> m_fakeProperties; QHash<int, QVariant> m_addProperties; QHash<QString, int> m_addIndex;private: QString transformLayoutPropertyName(int index) const; QLayout* layout(QDesignerPropertySheetExtension **layoutPropertySheet = 0) const; const bool m_canHaveLayoutAttributes; // Variables used for caching the layout, access via layout(). QPointer<QObject> m_object; mutable QPointer<QLayout> m_lastLayout; mutable QDesignerPropertySheetExtension *m_lastLayoutPropertySheet; mutable bool m_LastLayoutByDesigner;};class QDESIGNER_SHARED_EXPORT QDesignerPropertySheetFactory: public QExtensionFactory{ Q_OBJECT Q_INTERFACES(QAbstractExtensionFactory)public: QDesignerPropertySheetFactory(QExtensionManager *parent = 0); QObject *extension(QObject *object, const QString &iid) const;private slots: void objectDestroyed(QObject *object);private: mutable QMap<QObject*, QObject*> m_extensions; mutable QHash<QObject*, bool> m_extended;};#endif // QDESIGNER_PROPERTYSHEET_H
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?