⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 layout_p.h

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 H
字号:
/******************************************************************************** Copyright (C) 1992-2006 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://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** 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 LAYOUT_H#define LAYOUT_H#include "shared_global_p.h"#include "layoutinfo_p.h"#include <QtCore/QPointer>#include <QtCore/QObject>#include <QtCore/QMap>#include <QtCore/QHash>#include <QtGui/QLayout>#include <QtGui/QGridLayout>#include <QtGui/QWidget>class QDesignerFormWindowInterface;namespace qdesigner_internal {void QDESIGNER_SHARED_EXPORT add_to_box_layout(QBoxLayout *box, QWidget *widget);void QDESIGNER_SHARED_EXPORT insert_into_box_layout(QBoxLayout *box, int index, QWidget *widget);void QDESIGNER_SHARED_EXPORT add_to_grid_layout(QGridLayout *grid, QWidget *widget, int r, int c, int rs, int cs, Qt::Alignment align = 0);class QDESIGNER_SHARED_EXPORT Layout : public QObject{    Q_OBJECTpublic:    Layout(const QList<QWidget*> &wl, QWidget *p, QDesignerFormWindowInterface *fw, QWidget *lb, bool splitter = false);    virtual ~Layout();    int margin() const;    int spacing() const;    virtual void sort() = 0;    virtual void doLayout() = 0;    virtual void setup();    virtual void undoLayout();    virtual void breakLayout();    virtual bool prepareLayout(bool &needMove, bool &needReparent);    virtual void finishLayout(bool needMove, QLayout *layout);    QList<QWidget*> widgets() const { return m_widgets; }    QWidget *parentWidget() const { return m_parentWidget; }    QWidget *layoutBaseWidget() const { return layoutBase; }protected:    QList<QWidget*> m_widgets;    QWidget *m_parentWidget;    QPoint startPoint;    QHash<QWidget *, QRect> geometries;    QWidget *layoutBase;    QDesignerFormWindowInterface *formWindow;    QRect oldGeometry;    bool isBreak;    bool useSplitter;protected slots:    void widgetDestroyed();};class QDESIGNER_SHARED_EXPORT HorizontalLayout : public Layout{public:    HorizontalLayout(const QList<QWidget*> &wl, QWidget *p, QDesignerFormWindowInterface *fw, QWidget *lb, bool splitter = false);    virtual void doLayout();    virtual void sort();};class QDESIGNER_SHARED_EXPORT VerticalLayout : public Layout{public:    VerticalLayout(const QList<QWidget*> &wl, QWidget *p, QDesignerFormWindowInterface *fw, QWidget *lb, bool splitter = false);    virtual void doLayout();    virtual void sort();};class QDESIGNER_SHARED_EXPORT StackedLayout : public Layout{public:    StackedLayout(const QList<QWidget*> &wl, QWidget *p, QDesignerFormWindowInterface *fw, QWidget *lb, bool splitter = false);    virtual void doLayout();    virtual void sort();};class Grid;class QDESIGNER_SHARED_EXPORT GridLayout : public Layout{public:    GridLayout(const QList<QWidget*> &wl, QWidget *p, QDesignerFormWindowInterface *fw, QWidget *lb, const QSize &res);    ~GridLayout();    virtual void doLayout();    virtual void sort();protected:    QWidget *widgetAt(QGridLayout *layout, int row, int column) const;protected:    void buildGrid();    QSize resolution;    Grid* grid;};class QDESIGNER_SHARED_EXPORT WidgetVerticalSorter{public:    bool operator()(const QWidget *a, const QWidget *b) const    { return a->y() < b->y(); }};class QDESIGNER_SHARED_EXPORT WidgetHorizontalSorter{public:    bool operator()(const QWidget *a, const QWidget *b) const    { return a->x() < b->x(); }};class VerticalLayoutList: public QList<QWidget*>{public:    VerticalLayoutList(const QList<QWidget*> &l)        : QList<QWidget*>(l) {}    static bool lessThan(const QWidget *a, const QWidget *b)    {  return a->y() < b->y(); }    void sort()    { qSort(this->begin(), this->end(), WidgetVerticalSorter()); }};class HorizontalLayoutList : public QList<QWidget*>{public:    HorizontalLayoutList(const QList<QWidget*> &l)        : QList<QWidget*>(l) {}    static bool hLessThan(const QWidget *a, const QWidget *b)    { return a->x() < b->x(); }    void sort()    { qSort(this->begin(), this->end(), WidgetHorizontalSorter()); }};namespace Utils{inline int indexOfWidget(QLayout *layout, QWidget *widget){    int index = 0;    while (QLayoutItem *item = layout->itemAt(index)) {        if (item->widget() == widget)            return index;        ++index;    }    return -1;}} // namespace Utils} // namespace qdesigner_internal#endif // LAYOUT_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -