QtBase
v6.3.1
|
The QSplitter class implements a splitter widget. More...
#include <qsplitter.h>
Signals | |
void | splitterMoved (int pos, int index) |
Signals inherited from QWidget | |
void | windowTitleChanged (const QString &title) |
void | windowIconChanged (const QIcon &icon) |
void | windowIconTextChanged (const QString &iconText) |
void | customContextMenuRequested (const QPoint &pos) |
Signals inherited from QObject | |
void | destroyed (QObject *=nullptr) |
void | objectNameChanged (const QString &objectName, QPrivateSignal) |
Properties | |
Qt::Orientation | orientation |
the orientation of the splitter More... | |
bool | opaqueResize |
int | handleWidth |
the width of the splitter handles More... | |
bool | childrenCollapsible |
whether child widgets can be resized down to size 0 by the user More... | |
Properties inherited from QFrame | |
Shape | frameShape |
the frame shape value from the frame style More... | |
Shadow | frameShadow |
the frame shadow value from the frame style More... | |
int | lineWidth |
the line width More... | |
int | midLineWidth |
the width of the mid-line More... | |
int | frameWidth |
the width of the frame that is drawn. More... | |
QRect | frameRect |
the frame's rectangle More... | |
Properties inherited from QWidget | |
bool | modal |
whether the widget is a modal widget More... | |
Qt::WindowModality | windowModality |
which windows are blocked by the modal widget More... | |
bool | enabled |
whether the widget is enabled More... | |
QRect | geometry |
the geometry of the widget relative to its parent and excluding the window frame More... | |
QRect | frameGeometry |
geometry of the widget relative to its parent including any window frame More... | |
QRect | normalGeometry |
the geometry of the widget as it will appear when shown as a normal (not maximized or full screen) top-level widget More... | |
int | x |
the x coordinate of the widget relative to its parent including any window frame More... | |
int | y |
the y coordinate of the widget relative to its parent and including any window frame More... | |
QPoint | pos |
the position of the widget within its parent widget More... | |
QSize | frameSize |
the size of the widget including any window frame More... | |
QSize | size |
the size of the widget excluding any window frame More... | |
int | width |
the width of the widget excluding any window frame More... | |
int | height |
the height of the widget excluding any window frame More... | |
QRect | rect |
the internal geometry of the widget excluding any window frame More... | |
QRect | childrenRect |
the bounding rectangle of the widget's children More... | |
QRegion | childrenRegion |
the combined region occupied by the widget's children More... | |
QSizePolicy | sizePolicy |
the default layout behavior of the widget More... | |
QSize | minimumSize |
the widget's minimum size More... | |
QSize | maximumSize |
the widget's maximum size in pixels More... | |
int | minimumWidth |
the widget's minimum width in pixels More... | |
int | minimumHeight |
the widget's minimum height in pixels More... | |
int | maximumWidth |
the widget's maximum width in pixels More... | |
int | maximumHeight |
the widget's maximum height in pixels More... | |
QSize | sizeIncrement |
the size increment of the widget More... | |
QSize | baseSize |
the base size of the widget More... | |
QPalette | palette |
the widget's palette More... | |
QFont | font |
the font currently set for the widget More... | |
QCursor | cursor |
the cursor shape for this widget More... | |
bool | mouseTracking |
whether mouse tracking is enabled for the widget More... | |
bool | tabletTracking |
whether tablet tracking is enabled for the widget More... | |
bool | isActiveWindow |
whether this widget's window is the active window More... | |
Qt::FocusPolicy | focusPolicy |
the way the widget accepts keyboard focus More... | |
bool | focus |
whether this widget (or its focus proxy) has the keyboard input focus More... | |
Qt::ContextMenuPolicy | contextMenuPolicy |
how the widget shows a context menu More... | |
bool | updatesEnabled |
whether updates are enabled More... | |
bool | visible |
whether the widget is visible More... | |
bool | minimized |
whether this widget is minimized (iconified) More... | |
bool | maximized |
whether this widget is maximized More... | |
bool | fullScreen |
whether the widget is shown in full screen mode More... | |
QSize | sizeHint |
the recommended size for the widget More... | |
QSize | minimumSizeHint |
the recommended minimum size for the widget More... | |
bool | acceptDrops |
whether drop events are enabled for this widget More... | |
QString | windowTitle |
the window title (caption) More... | |
QIcon | windowIcon |
the widget's icon More... | |
QString | windowIconText |
the text to be displayed on the icon of a minimized window More... | |
double | windowOpacity |
The level of opacity for the window. More... | |
bool | windowModified |
whether the document shown in the window has unsaved changes More... | |
QString | accessibleName |
the widget's name as seen by assistive technologies More... | |
QString | accessibleDescription |
the widget's description as seen by assistive technologies More... | |
Qt::LayoutDirection | layoutDirection |
the layout direction for this widget. More... | |
bool | autoFillBackground |
whether the widget background is filled automatically More... | |
QString | styleSheet |
the widget's style sheet More... | |
QLocale | locale |
the widget's locale More... | |
QString | windowFilePath |
the file path associated with a widget More... | |
Qt::InputMethodHints | inputMethodHints |
What input method specific hints the widget has. More... | |
Properties inherited from QObject | |
QString | objectName |
the name of this object More... | |
Friends | |
class | QSplitterHandle |
The QSplitter class implements a splitter widget.
\inmodule QtWidgets
A splitter lets the user control the size of child widgets by dragging the boundary between them. Any number of widgets may be controlled by a single splitter. The typical use of a QSplitter is to create several widgets and add them using insertWidget() or addWidget().
The following example will show a QListView, QTreeView, and QTextEdit side by side, with two splitter handles:
If a widget is already inside a QSplitter when insertWidget() or addWidget() is called, it will move to the new position. This can be used to reorder widgets in the splitter later. You can use indexOf(), widget(), and count() to get access to the widgets inside the splitter.
A default QSplitter lays out its children horizontally (side by side); you can use setOrientation(Qt::Vertical) to lay its children out vertically.
By default, all widgets can be as large or as small as the user wishes, between the \l minimumSizeHint() (or \l minimumSize()) and \l maximumSize() of the widgets.
QSplitter resizes its children dynamically by default. If you would rather have QSplitter resize the children only at the end of a resize operation, call setOpaqueResize(false).
The initial distribution of size between the widgets is determined by multiplying the initial size with the stretch factor. You can also use setSizes() to set the sizes of all the widgets. The function sizes() returns the sizes set by the user. Alternatively, you can save and restore the sizes of the widgets from a QByteArray using saveState() and restoreState() respectively.
When you hide() a child, its space will be distributed among the other children. It will be reinstated when you show() it again.
Definition at line 56 of file qsplitter.h.
Constructs a horizontal splitter with the parent argument passed on to the QFrame constructor.
Definition at line 953 of file qsplitter.cpp.
|
explicit |
Constructs a splitter with the given orientation and parent.
Definition at line 964 of file qsplitter.cpp.
QSplitter::~QSplitter | ( | ) |
Destroys the splitter. All children are deleted.
Definition at line 977 of file qsplitter.cpp.
Adds the given widget to the splitter's layout after all the other items.
If widget is already in the splitter, it will be moved to the new position.
Definition at line 1113 of file qsplitter.cpp.
\reimp
Reimplemented from QFrame.
Definition at line 1666 of file qsplitter.cpp.
|
overrideprotectedvirtual |
\reimp
Tells the splitter that the child widget described by c has been inserted or removed.
This method is also used to handle the situation where a widget is created with the splitter as a parent but not explicitly added with insertWidget() or addWidget(). This is for compatibility and not the recommended way of putting widgets into a splitter in new code. Please use insertWidget() or addWidget() in new code.
Reimplemented from QObject.
Definition at line 1297 of file qsplitter.cpp.
bool QSplitter::childrenCollapsible | ( | ) | const |
Definition at line 1051 of file qsplitter.cpp.
|
protected |
Returns the closest legal position to pos of the widget at index.
For right-to-left languages such as Arabic and Hebrew, the layout of horizontal splitters is reversed. Positions are then measured from the right edge of the widget.
Definition at line 1482 of file qsplitter.cpp.
int QSplitter::count | ( | ) | const |
Returns the number of widgets contained in the splitter's layout.
Definition at line 1276 of file qsplitter.cpp.
|
protectedvirtual |
Returns a new splitter handle as a child widget of this splitter. This function can be reimplemented in subclasses to provide support for custom handles.
Reimplemented in Splitter.
Definition at line 1232 of file qsplitter.cpp.
|
overrideprotectedvirtual |
\reimp
Reimplemented from QFrame.
Definition at line 1365 of file qsplitter.cpp.
void QSplitter::getRange | ( | int | index, |
int * | min, | ||
int * | max | ||
) | const |
Returns the valid range of the splitter at index in {min} and *{max} if min and max are not 0.
Definition at line 1465 of file qsplitter.cpp.
QSplitterHandle * QSplitter::handle | ( | int | index | ) | const |
Returns the handle to the left of (or above) the item in the splitter's layout at the given index, or \nullptr if there is no such item. The handle at index 0 is always hidden.
For right-to-left languages such as Arabic and Hebrew, the layout of horizontal splitters is reversed. The handle will be to the right of the widget at index.
Definition at line 1249 of file qsplitter.cpp.
int QSplitter::handleWidth | ( | ) | const |
int QSplitter::indexOf | ( | QWidget * | widget | ) | const |
Returns the index in the splitter's layout of the specified widget, or -1 if widget is not found. This also works for handles.
Handles are numbered from 0. There are as many handles as there are child widgets, but the handle at position 0 is always hidden.
Definition at line 1214 of file qsplitter.cpp.
Inserts the widget specified into the splitter's layout at the given index.
If widget is already in the splitter, it will be moved to the new position.
If index is an invalid index, then the widget will be inserted at the end.
Definition at line 1131 of file qsplitter.cpp.
bool QSplitter::isCollapsible | ( | int | index | ) | const |
Returns true
if the widget at index is collapsible, otherwise returns false
.
Definition at line 1084 of file qsplitter.cpp.
|
overridevirtual |
\reimp
Reimplemented from QWidget.
Definition at line 1546 of file qsplitter.cpp.
|
protected |
Moves the left or top edge of the splitter handle at index as close as possible to position pos, which is the distance from the left or top edge of the widget.
For right-to-left languages such as Arabic and Hebrew, the layout of horizontal splitters is reversed. pos is then the distance from the right edge of the widget.
Definition at line 1414 of file qsplitter.cpp.
bool QSplitter::opaqueResize | ( | ) | const |
Qt::Orientation QSplitter::orientation | ( | ) | const |
Definition at line 1028 of file qsplitter.cpp.
void QSplitter::refresh | ( | ) |
Updates the splitter's state. You should not need to call this function.
Definition at line 991 of file qsplitter.cpp.
Replaces the widget in the splitter's layout at the given index by widget.
Returns the widget that has just been replaced if index is valid and widget is not already a child of the splitter. Otherwise, it returns null and no replacement or addition is made.
The geometry of the newly inserted widget will be the same as the widget it replaces. Its visible and collapsed states are also inherited.
Definition at line 1158 of file qsplitter.cpp.
|
overrideprotectedvirtual |
bool QSplitter::restoreState | ( | const QByteArray & | state | ) |
Restores the splitter's layout to the state specified. Returns true
if the state is restored; otherwise returns false
.
Typically this is used in conjunction with QSettings to restore the size from a past session. Here is an example:
Restore the splitter's state:
A failure to restore the splitter's layout may result from either invalid or out-of-date data in the supplied byte array.
Definition at line 1729 of file qsplitter.cpp.
QByteArray QSplitter::saveState | ( | ) | const |
Saves the state of the splitter's layout.
Typically this is used in conjunction with QSettings to remember the size for a future session. A version number is stored as part of the data. Here is an example:
Definition at line 1687 of file qsplitter.cpp.
void QSplitter::setChildrenCollapsible | ( | bool | collapse | ) |
Definition at line 1045 of file qsplitter.cpp.
void QSplitter::setCollapsible | ( | int | index, |
bool | collapse | ||
) |
Sets whether the child widget at index is collapsible to collapse.
By default, children are collapsible, meaning that the user can resize them down to size 0, even if they have a non-zero minimumSize() or minimumSizeHint(). This behavior can be changed on a per-widget basis by calling this function, or globally for all the widgets in the splitter by setting the \l childrenCollapsible property.
Definition at line 1070 of file qsplitter.cpp.
void QSplitter::setHandleWidth | ( | int | width | ) |
Definition at line 1656 of file qsplitter.cpp.
Definition at line 1511 of file qsplitter.cpp.
void QSplitter::setOrientation | ( | Qt::Orientation | orientation | ) |
Definition at line 1008 of file qsplitter.cpp.
|
protected |
Displays a rubber band at position pos. If pos is negative, the rubber band is removed.
Definition at line 1333 of file qsplitter.cpp.
Sets the child widgets' respective sizes to the values given in the list.
If the splitter is horizontal, the values set the width of each widget in pixels, from left to right. If the splitter is vertical, the height of each widget is set, from top to bottom.
Extra values in the list are ignored. If list contains too few values, the result is undefined, but the program will still be well-behaved.
The overall size of the splitter widget is not affected. Instead, any additional/missing space is distributed amongst the widgets according to the relative weight of the sizes.
If you specify a size of 0, the widget will be invisible. The size policies of the widgets are preserved. That is, a value smaller than the minimal size hint of the respective widget will be replaced by the value of the hint.
Definition at line 1629 of file qsplitter.cpp.
void QSplitter::setStretchFactor | ( | int | index, |
int | stretch | ||
) |
Updates the size policy of the widget at position index to have a stretch factor of stretch.
stretch is not the effective stretch factor; the effective stretch factor is calculated by taking the initial size of the widget and multiplying it with stretch.
This function is provided for convenience. It is equivalent to
Definition at line 1783 of file qsplitter.cpp.
|
overridevirtual |
\reimp
Reimplemented from QFrame.
Definition at line 1522 of file qsplitter.cpp.
QList< int > QSplitter::sizes | ( | ) | const |
Returns a list of the size parameters of all the widgets in this splitter.
If the splitter's orientation is horizontal, the list contains the widgets width in pixels, from left to right; if the orientation is vertical, the list contains the widgets' heights in pixels, from top to bottom.
Giving the values to another splitter's setSizes() function will produce a splitter with the same layout as this one.
Note that invisible widgets have a size of 0.
Definition at line 1592 of file qsplitter.cpp.
|
signal |
This signal is emitted when the splitter handle at a particular index has been moved to position pos.
For right-to-left languages such as Arabic and Hebrew, the layout of horizontal splitters is reversed. pos is then the distance from the right edge of the widget.
QWidget * QSplitter::widget | ( | int | index | ) | const |
Returns the widget at the given index in the splitter's layout, or \nullptr if there is no such widget.
Definition at line 1263 of file qsplitter.cpp.
|
friend |
Definition at line 128 of file qsplitter.h.
|
readwrite |
whether child widgets can be resized down to size 0 by the user
By default, children are collapsible. It is possible to enable and disable the collapsing of individual children using setCollapsible().
Definition at line 163 of file qsplitter.h.
|
readwrite |
the width of the splitter handles
By default, this property contains a value that depends on the user's platform and style preferences.
If you set handleWidth to 1 or 0, the actual grab area will grow to overlap a few pixels of its respective widgets.
Definition at line 163 of file qsplitter.h.
|
readwrite |
Returns true
if widgets are resized dynamically (opaquely) while interactively moving the splitter. Otherwise returns false
.
The default resize behavior is style dependent (determined by the SH_Splitter_OpaqueResize style hint). However, you can override it by calling setOpaqueResize()
Definition at line 163 of file qsplitter.h.
|
readwrite |
the orientation of the splitter
By default, the orientation is horizontal (i.e., the widgets are laid out side by side). The possible orientations are Qt::Horizontal and Qt::Vertical.
Definition at line 163 of file qsplitter.h.