QSplitter 类实现分割器 Widget。 更多...
继承 QFrame .
QSplitter 类实现分割器 Widget。
A splitter lets the user control the size of child widgets by dragging the boundary between the children. 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 () 或 addWidget ().
以下范例将展示 QListView , QTreeView ,和 QTextEdit side by side, with two splitter handles:
QSplitter *splitter = new QSplitter(parent);
QListView *listview = new QListView;
QTreeView *treeview = new QTreeView;
QTextEdit *textedit = new QTextEdit;
splitter->addWidget(listview);
splitter->addWidget(treeview);
splitter->addWidget(textedit);
If a widget is already inside a QSplitter when insertWidget () 或 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 (),和 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 minimumSizeHint () (or minimumSize ()) and 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. 还可以使用 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 使用 saveState () 和 restoreState () respectively.
When you hide () a child its space will be distributed among the other children. It will be reinstated when you show () it 再次。
parent argument, if not None, causes self to be owned by Qt instead of PyQt.
构造水平分割器采用 parent argument passed on to the QFrame 构造函数。
另请参阅 setOrientation ().
parent argument, if not None, causes self to be owned by Qt instead of PyQt.
构造分割器采用给定 orientation and parent .
另请参阅 setOrientation ().
widget argument has it's ownership transferred to Qt.
添加给定 widget to the splitter's layout after all the other items.
若 widget is already in the splitter, it will be moved to the new position.
另请参阅 insertWidget (), widget (),和 indexOf ().
重实现自 QWidget.changeEvent ().
重实现自 QObject.childEvent ().
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 () 或 addWidget (). This is for compatibility and not the recommended way of putting widgets into a splitter in new code. Please use insertWidget () 或 addWidget () in new code.
另请参阅 addWidget () 和 insertWidget ().
Returns the closest legal position to pos of the widget with index 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.
另请参阅 getRange ().
Returns the number of widgets contained in the splitter's layout.
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.
重实现自 QObject.event ().
Returns the valid range of the splitter with index index in * min and * max if min and max are not 0.
Returns the handle to the left (or above) for the item in the splitter's layout at the given index . 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 .
另请参阅 count (), widget (), indexOf (), createHandle (),和 setHandleWidth ().
Returns the index in the splitter's layout of the specified widget . 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.
widget argument has it's ownership transferred to Qt.
插入 widget specified into the splitter's layout at the given index .
若 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.
另请参阅 addWidget (), indexOf (),和 widget ().
Returns true if the widget at index is collapsible, otherwise returns false
重实现自 QWidget.minimumSizeHint ().
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.
另请参阅 splitterMoved (), closestLegalPosition (), and getRange ().
Updates the splitter's state. You should not need to call this 函数。
重实现自 QWidget.resizeEvent ().
将分割器布局还原成 state 指定。 Returns true if the state is restored; otherwise returns false.
通常,这用于结合 QSettings to restore the size from a past session. Here is an example:
Restore the splitters's state:
QSettings settings;
splitter->restoreState(settings.value("splitterSizes").toByteArray());
A failure to restore the splitter's layout may result from either invalid or out-of-date data in the supplied byte array.
另请参阅 saveState ().
保存分割器布局的状态。
通常,这用于结合 QSettings to remember the size for a future session. A version number is stored as part of the data. Here is an example:
QSettings settings;
settings.setValue("splitterSizes", splitter->saveState());
另请参阅 restoreState ().
Sets whether the child widget at index 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 () 或 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 childrenCollapsible 特性。
另请参阅 isCollapsible () 和 childrenCollapsible .
Displays a rubber band at position pos 。若 pos is negative, the rubber band is removed.
Sets the child widgets respective sizes to the values given in the list .
If the splitter is horizontal, the values set the widths of each widget in pixels, from left to right. If the splitter is vertical, the heights 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 then the minimal size hint of the respective widget will be replaced by the value of the hint.
另请参阅 sizes ().
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
QWidget *widget = splitter->widget(index); QSizePolicy policy = widget->sizePolicy(); policy.setHorizontalStretch(stretch); policy.setVerticalStretch(stretch); widget->setSizePolicy(policy);
另请参阅 setSizes () and widget ().
重实现自 QWidget.sizeHint ().
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 height in pixels, from top to bottom.
将值赋予另一分割器的 setSizes () function will produce a splitter with the same layout as this one.
注意:不可见 Widget 拥有 0 尺寸。
另请参阅 setSizes ().
返回 Widget 在给定 index in the splitter's layout.
另请参阅 count (), handle (), indexOf (),和 insertWidget ().
This is the default overload of this 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.
另请参阅 moveSplitter ().