qlayout_widget_p.h
来自「奇趣公司比较新的qt/emd版本」· C头文件 代码 · 共 240 行
H
240 行
/******************************************************************************** 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 QLAYOUT_WIDGET_H#define QLAYOUT_WIDGET_H#include "shared_global_p.h"#include "layoutdecoration.h"#include <QtDesigner/QDesignerMetaDataBaseInterface>#include <QtCore/QPointer>#include <QtGui/QWidget>#include <QtGui/QGridLayout>class QDesignerFormWindowInterface;class QDESIGNER_SHARED_EXPORT QLayoutSupport: public QObject{ Q_OBJECTpublic: QLayoutSupport(QDesignerFormWindowInterface *formWindow, QWidget *widget, QObject *parent = 0); virtual ~QLayoutSupport(); inline QWidget *widget() const { return m_widget; } inline QLayout *layout() const { return widget()->layout(); } inline QGridLayout *gridLayout() const { return qobject_cast<QGridLayout*>(layout()); } inline QDesignerFormWindowInterface *formWindow() const { return m_formWindow; } QDesignerFormEditorInterface *core() const; inline int currentIndex() const { return m_currentIndex; } inline QDesignerLayoutDecorationExtension::InsertMode currentInsertMode() const { return m_currentInsertMode; } inline QPair<int, int> currentCell() const { return m_currentCell; } int findItemAt(const QPoint &pos) const; QRect itemInfo(int index) const; int indexOf(QWidget *widget) const; int indexOf(QLayoutItem *item) const; void adjustIndicator(const QPoint &pos, int index); void insertWidget(QWidget *widget, const QPair<int, int> &cell); void removeWidget(QWidget *widget); QList<QWidget*> widgets(QLayout *layout) const; void simplifyLayout(); void insertRow(int row); void insertColumn(int column); void removeRow(int row); void removeColumn(int column); QRect extendedGeometry(int index) const;//// QGridLayout helpers// int findItemAt(int row, int column) const; static int findItemAt(QGridLayout *, int row, int column); static void createEmptyCells(QGridLayout *&gridLayout); void computeGridLayout(QHash<QLayoutItem*, QRect> *layout); void rebuildGridLayout(QHash<QLayoutItem*, QRect> *layout); void insertWidget(int index, QWidget *widget); inline bool isEmptyItem(QLayoutItem *item) const { return item->spacerItem() != 0; }protected: void tryRemoveRow(int row); void tryRemoveColumn(int column);private: QDesignerFormWindowInterface *m_formWindow; QPointer<QWidget> m_widget; QPointer<QWidget> m_indicatorLeft; QPointer<QWidget> m_indicatorTop; QPointer<QWidget> m_indicatorRight; QPointer<QWidget> m_indicatorBottom; int m_currentIndex; QDesignerLayoutDecorationExtension::InsertMode m_currentInsertMode; QPair<int, int> m_currentCell;};class QDESIGNER_SHARED_EXPORT QLayoutWidget: public QWidget{ Q_OBJECTpublic: QLayoutWidget(QDesignerFormWindowInterface *formWindow, QWidget *parent = 0); int layoutLeftMargin() const; void setLayoutLeftMargin(int layoutMargin); int layoutTopMargin() const; void setLayoutTopMargin(int layoutMargin); int layoutRightMargin() const; void setLayoutRightMargin(int layoutMargin); int layoutBottomMargin() const; void setLayoutBottomMargin(int layoutMargin); inline QDesignerFormWindowInterface *formWindow() const { return m_formWindow; } inline QLayoutSupport *support() const { return const_cast<QLayoutSupport*>(&m_support); } inline int findItemAt(const QPoint &pos) const { return m_support.findItemAt(pos); } inline QRect itemInfo(int index) const { return m_support.itemInfo(index); } inline void adjustIndicator(const QPoint &pos, int index) { m_support.adjustIndicator(pos, index); } inline void insertWidget(QWidget *widget, const QPair<int, int> &cell) { m_support.insertWidget(widget, cell); } inline void removeWidget(QWidget *widget) { m_support.removeWidget(widget); }protected: virtual bool event(QEvent *e); virtual void paintEvent(QPaintEvent *e); void updateMargin(); inline QList<QWidget*> widgets(QLayout *layout) { return m_support.widgets(layout); } inline void insertRow(int row) { m_support.insertRow(row); } inline void insertColumn(int column) { m_support.insertColumn(column); } inline void computeGridLayout(QHash<QLayoutItem*, QRect> *layout) { m_support.computeGridLayout(layout); } inline void rebuildGridLayout(QHash<QLayoutItem*, QRect> *layout) { m_support.rebuildGridLayout(layout); }private: QDesignerFormWindowInterface *m_formWindow; QLayoutSupport m_support; int m_leftMargin; int m_topMargin; int m_rightMargin; int m_bottomMargin;};class QLayoutWidgetItem: public QWidgetItem{public: QLayoutWidgetItem(QWidget *widget); virtual void setGeometry(const QRect &r); virtual QSize sizeHint() const; virtual QSize minimumSize() const; virtual QSize maximumSize() const; virtual Qt::Orientations expandingDirections() const; virtual bool hasHeightForWidth() const; virtual int heightForWidth(int) const; virtual int minimumHeightForWidth(int) const; void addTo(QLayout *layout); void removeFrom(QLayout *layout);protected: inline QLayoutWidgetItem *me() const { return const_cast<QLayoutWidgetItem*>(this); } inline QLayout *theLayout() const { Q_ASSERT(me()->widget()); return me()->widget()->layout(); }};#endif // QDESIGNER_WIDGET_H
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?