QWT 7.0.1
Loading...
Searching...
No Matches
qwt_dyngrid_layout.h
1/******************************************************************************
2 * Qwt Widget Library
3 * Copyright (C) 1997 Josef Wilgen
4 * Copyright (C) 2002 Uwe Rathmann
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the Qwt License, Version 1.0
8 *
9 * Modified by ChenZongYan in 2024 <czy.t@163.com>
10 * Summary of major modifications (see ChangeLog.md for full history):
11 * 1. CMake build system & C++11 throughout.
12 * 2. Core panner/ zoomer refactored:
13 * - QwtPanner → QwtCachePanner (pixmap-cache version)
14 * - New real-time QwtPlotPanner derived from QwtPicker.
15 * 3. Zoomer supports multi-axis.
16 * 4. Parasite-plot framework:
17 * - QwtFigure, QwtPlotParasiteLayout, QwtPlotTransparentCanvas,
18 * - QwtPlotScaleEventDispatcher, built-in pan/zoom on axis.
19 * 5. New picker: QwtPlotSeriesDataPicker (works with date axis).
20 * 6. Raster & color-map extensions:
21 * - QwtGridRasterData (2-D table + interpolation)
22 * - QwtLinearColorMap::stopColors(), stopPos() API rename.
23 * 7. Bar-chart: expose pen/brush control.
24 * 8. Amalgamated build: single QwtPlot.h / QwtPlot.cpp pair in src-amalgamate.
25 *****************************************************************************/
26
27#ifndef QWT_DYNGRID_LAYOUT_H
28#define QWT_DYNGRID_LAYOUT_H
29
30#include "qwt_global.h"
31#include <qlayout.h>
32
33template< typename T > class QList;
34
44class QWT_EXPORT QwtDynGridLayout : public QLayout
45{
46 Q_OBJECT
47 public:
48 explicit QwtDynGridLayout( QWidget*, int margin = 0, int spacing = -1 );
49 explicit QwtDynGridLayout( int spacing = -1 );
50
51 virtual ~QwtDynGridLayout();
52
53 virtual void invalidate() QWT_OVERRIDE;
54
55 void setMaxColumns( uint maxColumns );
56 uint maxColumns() const;
57
58 uint numRows () const;
59 uint numColumns () const;
60
61 virtual void addItem( QLayoutItem* ) QWT_OVERRIDE;
62
63 virtual QLayoutItem* itemAt( int index ) const QWT_OVERRIDE;
64 virtual QLayoutItem* takeAt( int index ) QWT_OVERRIDE;
65 virtual int count() const QWT_OVERRIDE;
66
67 void setExpandingDirections( Qt::Orientations );
68 virtual Qt::Orientations expandingDirections() const QWT_OVERRIDE;
69 QList< QRect > layoutItems( const QRect&, uint numColumns ) const;
70
71 virtual int maxItemWidth() const;
72
73 virtual void setGeometry( const QRect& ) QWT_OVERRIDE;
74
75 virtual bool hasHeightForWidth() const QWT_OVERRIDE;
76 virtual int heightForWidth( int ) const QWT_OVERRIDE;
77
78 virtual QSize sizeHint() const QWT_OVERRIDE;
79
80 virtual bool isEmpty() const QWT_OVERRIDE;
81 uint itemCount() const;
82
83 virtual uint columnsForWidth( int width ) const;
84
85 protected:
86
87 void layoutGrid( uint numColumns,
88 QVector< int >& rowHeight, QVector< int >& colWidth ) const;
89
90 void stretchGrid( const QRect& rect, uint numColumns,
91 QVector< int >& rowHeight, QVector< int >& colWidth ) const;
92
93 private:
94 void init();
95 int maxRowWidth( int numColumns ) const;
96
97 class PrivateData;
98 PrivateData* m_data;
99};
100
101#endif
Definition qwt_dyngrid_layout.h:33
Definition qwt_clipper.h:40
The QwtDynGridLayout class lays out widgets in a grid, adjusting the number of columns and rows to th...
Definition qwt_dyngrid_layout.h:45