|
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.trolltech.qt.QSignalEmitter
com.trolltech.qt.QtJambiObject
com.trolltech.qt.core.QObject
com.trolltech.qt.gui.QWidget
com.trolltech.qt.gui.QFrame
com.trolltech.qt.gui.QSplitter
public class QSplitter
The QSplitter class implements a splitter 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 or addWidget.
The following example will show a QListView, QTreeView, and 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 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 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 the initial size of each widget. 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.
Nested Class Summary | |
---|---|
static class |
QSplitter.Range
|
Nested classes/interfaces inherited from class com.trolltech.qt.gui.QFrame |
---|
QFrame.Shadow, QFrame.Shape, QFrame.StyleMask |
Nested classes/interfaces inherited from class com.trolltech.qt.gui.QWidget |
---|
QWidget.RenderFlag, QWidget.RenderFlags |
Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter |
---|
QSignalEmitter.Signal0, QSignalEmitter.Signal1<A>, QSignalEmitter.Signal2<A,B>, QSignalEmitter.Signal3<A,B,C>, QSignalEmitter.Signal4<A,B,C,D>, QSignalEmitter.Signal5<A,B,C,D,E>, QSignalEmitter.Signal6<A,B,C,D,E,F>, QSignalEmitter.Signal7<A,B,C,D,E,F,G>, QSignalEmitter.Signal8<A,B,C,D,E,F,G,H>, QSignalEmitter.Signal9<A,B,C,D,E,F,G,H,I> |
Field Summary | |
---|---|
QSignalEmitter.Signal2<java.lang.Integer,java.lang.Integer> |
splitterMoved
This signal is emitted when the splitter handle at a particular index has been moved to position pos. |
Fields inherited from class com.trolltech.qt.gui.QWidget |
---|
customContextMenuRequested |
Constructor Summary | |
---|---|
QSplitter()
Equivalent to QSplitter(0). |
|
QSplitter(Qt.Orientation arg__1)
Equivalent to QSplitter(arg__1, 0). |
|
QSplitter(Qt.Orientation arg__1,
QWidget parent)
Constructs a splitter with the given arg__1 and parent. |
|
QSplitter(QWidget parent)
Constructs a horizontal splitter with the parent arguments is passed on to the QFrame constructor. |
Method Summary | |
---|---|
void |
addWidget(QWidget widget)
Adds the given widget to the splitter's layout after all the other items. |
protected void |
changeEvent(QEvent arg__1)
This event handler can be reimplemented to handle state changes. The state being changed in this event can be retrieved through event arg__1. Change events include: QEvent::ToolBarChange, QEvent::ActivationChange, QEvent::EnabledChange, QEvent::FontChange, QEvent::StyleChange, QEvent::PaletteChange, QEvent::WindowTitleChange, QEvent::IconTextChange, QEvent::ModifiedChange, QEvent::MouseTrackingChange, QEvent::ParentChange, QEvent::WindowStateChange, QEvent::LanguageChange, QEvent::LocaleChange, QEvent::LayoutDirectionChange. |
protected void |
childEvent(QChildEvent arg__1)
This event handler can be reimplemented in a subclass to receive child events. |
boolean |
childrenCollapsible()
Returns whether child widgets can be resized down to size 0 by the user. |
protected int |
closestLegalPosition(int arg__1,
int arg__2)
Returns the closest legal position to arg__1 of the widget with index arg__2. |
int |
count()
Returns the number of widgets contained in the splitter's layout. |
protected QSplitterHandle |
createHandle()
Returns a new splitter handle as a child widget of this splitter. |
boolean |
event(QEvent arg__1)
This is the main event handler; it handles event arg__1. You can reimplement this function in a subclass, but we recommend using one of the specialized event handlers instead. Key press and release events are treated differently from other events. event checks for Tab and Shift+Tab and tries to move the focus appropriately. If there is no widget to move the focus to (or the key press is not Tab or Shift+Tab), event calls keyPressEvent. Mouse and tablet event handling is also slightly special: only when the widget is enabled, event will call the specialized handlers such as mousePressEvent; otherwise it will discard the event. This function returns true if the event was recognized, otherwise it returns false. If the recognized event was accepted (see QEvent::accepted), any further processing such as event propagation to the parent widget stops. |
static QSplitter |
fromNativePointer(QNativePointer nativePointer)
This function returns the QSplitter instance pointed to by nativePointer |
QSplitter.Range |
getRange(int index)
Returns the valid range of the splitter with index index. |
QSplitterHandle |
handle(int index)
Returns the handle to the left (or above) for the item in the splitter's layout at the given index. |
int |
handleWidth()
Returns the width of the splitter handles. |
int |
indexOf(QWidget w)
Returns the index in the splitter's layout of the specified w. |
void |
insertWidget(int index,
QWidget widget)
Inserts the widget specified into the splitter's layout at the given index. |
boolean |
isCollapsible(int index)
Returns true if the widget at index is collapsible, otherwise returns false |
QSize |
minimumSizeHint()
Returns the recommended minimum size for the widget. |
protected void |
moveSplitter(int pos,
int index)
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. |
boolean |
opaqueResize()
Returns whether resizing is opaque. |
Qt.Orientation |
orientation()
Returns the orientation of the splitter. |
void |
readFrom(QTextStream arg__1)
Reads a QSplitter from arg__1. |
void |
refresh()
Updates the splitter's state. |
protected void |
resizeEvent(QResizeEvent arg__1)
This event handler can be reimplemented in a subclass to receive widget resize events which are passed in the arg__1 parameter. |
boolean |
restoreState(QByteArray state)
Restores the splitter's layout to the state specified. |
QByteArray |
saveState()
Saves the state of the splitter's layout. |
void |
setChildrenCollapsible(boolean arg__1)
Sets whether child widgets can be resized down to size 0 by the user to arg__1. |
void |
setCollapsible(int index,
boolean arg__2)
Sets whether the child widget at index index is collapsible to arg__2. |
void |
setHandleWidth(int arg__1)
Sets the width of the splitter handles to arg__1. |
void |
setOpaqueResize()
Equivalent to setOpaqueResize(true). |
void |
setOpaqueResize(boolean opaque)
Sets whether resizing is opaque to opaque. |
void |
setOrientation(Qt.Orientation arg__1)
Sets the orientation of the splitter to arg__1. |
protected void |
setRubberBand(int position)
Displays a rubber band at position position. |
void |
setSizes(java.util.List<java.lang.Integer> list)
Sets the size parameters to the values given in the list. |
void |
setStretchFactor(int index,
int stretch)
Updates the size policy of the widget at position index to have a stretch factor of stretch. |
QSize |
sizeHint()
Returns the recommended size for the widget. If the value of this property is an invalid size, no size is recommended. The default implementation of sizeHint returns an invalid size if there is no layout for this widget, and returns the layout's preferred size otherwise. |
java.util.List<java.lang.Integer> |
sizes()
Returns a list of the size parameters of all the widgets in this splitter. |
QWidget |
widget(int index)
Returns the widget at the given index in the splitter's layout. |
void |
writeTo(QTextStream arg__1)
Writes thisQSplitter to arg__1. |
Methods inherited from class com.trolltech.qt.gui.QFrame |
---|
drawFrame, frameRect, frameShadow, frameShape, frameStyle, frameWidth, lineWidth, midLineWidth, paintEvent, setFrameRect, setFrameShadow, setFrameShape, setFrameStyle, setLineWidth, setMidLineWidth |
Methods inherited from class com.trolltech.qt.core.QObject |
---|
blockSignals, children, connectSlotsByName, customEvent, disposeLater, dumpObjectInfo, dumpObjectTree, dynamicPropertyNames, eventFilter, findChild, findChild, findChild, findChildren, findChildren, findChildren, findChildren, installEventFilter, isWidgetType, killTimer, moveToThread, objectName, parent, property, removeEventFilter, setObjectName, setParent, setProperty, signalsBlocked, startTimer, thread, timerEvent |
Methods inherited from class com.trolltech.qt.QtJambiObject |
---|
dispose, disposed, finalize, reassignNativeResources, tr, tr, tr |
Methods inherited from class com.trolltech.qt.QSignalEmitter |
---|
disconnect, disconnect, signalSender |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.trolltech.qt.QtJambiInterface |
---|
disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership |
Field Detail |
---|
public final QSignalEmitter.Signal2<java.lang.Integer,java.lang.Integer> splitterMoved
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.
Constructor Detail |
---|
public QSplitter()
Equivalent to QSplitter(0).
public QSplitter(QWidget parent)
Constructs a horizontal splitter with the parent arguments is passed on to the QFrame constructor.
public QSplitter(Qt.Orientation arg__1)
Equivalent to QSplitter(arg__1, 0).
public QSplitter(Qt.Orientation arg__1, QWidget parent)
Constructs a splitter with the given arg__1 and parent.
Method Detail |
---|
public final void addWidget(QWidget widget)
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.
public final boolean childrenCollapsible()
Returns 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.
protected final int closestLegalPosition(int arg__1, int arg__2)
Returns the closest legal position to arg__1 of the widget with index arg__2.
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.
public final int count()
Returns the number of widgets contained in the splitter's layout.
public final QSplitterHandle handle(int index)
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.
public final int handleWidth()
Returns the width of the splitter handles.
public final int indexOf(QWidget w)
Returns the index in the splitter's layout of the specified w. 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.
public final void insertWidget(int index, QWidget widget)
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.
public final boolean isCollapsible(int index)
Returns true if the widget at index is collapsible, otherwise returns false
protected final void moveSplitter(int pos, int index)
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.
public final boolean opaqueResize()
Returns whether resizing is opaque.
Opaque resizing is on by default.
public final void writeTo(QTextStream arg__1)
public final void readFrom(QTextStream arg__1)
public final Qt.Orientation orientation()
Returns 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.
public final void refresh()
Updates the splitter's state. You should not need to call this function.
public final boolean restoreState(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 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.
public final QByteArray saveState()
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:
QSettings settings; settings.setValue("splitterSizes", splitter->saveState());
public final void setChildrenCollapsible(boolean arg__1)
Sets whether child widgets can be resized down to size 0 by the user to arg__1.
By default, children are collapsible. It is possible to enable and disable the collapsing of individual children using setCollapsible.
public final void setCollapsible(int index, boolean arg__2)
Sets whether the child widget at index index is collapsible to arg__2.
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 childrenCollapsible property.
public final void setHandleWidth(int arg__1)
Sets the width of the splitter handles to arg__1.
public final void setOpaqueResize()
Equivalent to setOpaqueResize(true).
public final void setOpaqueResize(boolean opaque)
Sets whether resizing is opaque to opaque.
Opaque resizing is on by default.
public final void setOrientation(Qt.Orientation arg__1)
Sets the orientation of the splitter to arg__1.
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.
protected final void setRubberBand(int position)
Displays a rubber band at position position. If position is negative, the rubber band is removed.
public final void setSizes(java.util.List<java.lang.Integer> list)
Sets the size parameters to the values given in the list. If the splitter is horizontal, the values set the widths of each widget going from left to right. If the splitter is vertical, the values set the heights of each widget going 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 values in list should be the height or width (depending on orientation) that the widgets should be resized to. If you specify a size of 0, the widget will be invisible.
public final void setStretchFactor(int index, int stretch)
Updates the size policy of the widget at position index to have a stretch factor of 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);
public final java.util.List<java.lang.Integer> sizes()
Returns a list of the size parameters of all the widgets in this splitter.
If the splitter's orientation is horizontal, the list is a list of widget widths; if the orientation is vertical, the list is a list of widget heights.
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.
The easiest way to iterate over the list is to use the Java-style iterators.
QListIterator<int> it(splitter->sizes()); while (it.hasNext()) processSize(it.next());
public final QWidget widget(int index)
Returns the widget at the given index in the splitter's layout.
protected void changeEvent(QEvent arg__1)
This event handler can be reimplemented to handle state changes.
The state being changed in this event can be retrieved through event arg__1.
Change events include: QEvent::ToolBarChange, QEvent::ActivationChange, QEvent::EnabledChange, QEvent::FontChange, QEvent::StyleChange, QEvent::PaletteChange, QEvent::WindowTitleChange, QEvent::IconTextChange, QEvent::ModifiedChange, QEvent::MouseTrackingChange, QEvent::ParentChange, QEvent::WindowStateChange, QEvent::LanguageChange, QEvent::LocaleChange, QEvent::LayoutDirectionChange.
changeEvent
in class QFrame
protected void childEvent(QChildEvent arg__1)
This event handler can be reimplemented in a subclass to receive child events. The event is passed in the arg__1 parameter.
QEvent::ChildAdded and QEvent::ChildRemoved events are sent to objects when children are added or removed. In both cases you can only rely on the child being a QObject, or if isWidgetType returns true, a QWidget. (This is because, in the ChildAdded case, the child is not yet fully constructed, and in the ChildRemoved case it might have been destructed already).
QEvent::ChildPolished events are sent to widgets when children are polished, or when polished children are added. If you receive a child polished event, the child's construction is usually completed.
For every child widget, you receive one ChildAdded event, zero or more ChildPolished events, and one ChildRemoved event.
The ChildPolished event is omitted if a child is removed immediately after it is added. If a child is polished several times during construction and destruction, you may receive several child polished events for the same child, each time with a different virtual table.
childEvent
in class QObject
protected QSplitterHandle createHandle()
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.
public boolean event(QEvent arg__1)
This is the main event handler; it handles event arg__1. You can reimplement this function in a subclass, but we recommend using one of the specialized event handlers instead.
Key press and release events are treated differently from other events. event checks for Tab and Shift+Tab and tries to move the focus appropriately. If there is no widget to move the focus to (or the key press is not Tab or Shift+Tab), event calls keyPressEvent.
Mouse and tablet event handling is also slightly special: only when the widget is enabled, event will call the specialized handlers such as mousePressEvent; otherwise it will discard the event.
This function returns true if the event was recognized, otherwise it returns false. If the recognized event was accepted (see QEvent::accepted), any further processing such as event propagation to the parent widget stops.
event
in class QFrame
public QSize minimumSizeHint()
Returns the recommended minimum size for the widget.
If the value of this property is an invalid size, no minimum size is recommended.
The default implementation of minimumSizeHint returns an invalid size if there is no layout for this widget, and returns the layout's minimum size otherwise. Most built-in widgets reimplement minimumSizeHint.
QLayout will never resize a widget to a size smaller than the minimum size hint unless minimumSize is set or the size policy is set to QSizePolicy::Ignore. If minimumSize is set, the minimum size hint will be ignored.
minimumSizeHint
in class QWidget
protected void resizeEvent(QResizeEvent arg__1)
This event handler can be reimplemented in a subclass to receive widget resize events which are passed in the arg__1 parameter. When resizeEvent is called, the widget already has its new geometry. The old size is accessible through QResizeEvent::oldSize().
The widget will be erased and receive a paint event immediately after processing the resize event. No drawing need be (or should be) done inside this handler.
resizeEvent
in class QWidget
Example
public QSize sizeHint()
Returns the recommended size for the widget.
If the value of this property is an invalid size, no size is recommended.
The default implementation of sizeHint returns an invalid size if there is no layout for this widget, and returns the layout's preferred size otherwise.
sizeHint
in class QFrame
public static QSplitter fromNativePointer(QNativePointer nativePointer)
nativePointer
- the QNativePointer of which object should be returned.public QSplitter.Range getRange(int index)
|
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |