[QtGui module]
该QScrollArea类提供了一个滚动视图到另一个部件。More…
Methods
__init__ (self, QWidget parent = None)
Qt.Alignment alignment (self)
ensureVisible (self, int x, int y, int xMargin = 50, int yMargin = 50)
ensureWidgetVisible (self, QWidget childWidget, int xMargin = 50, int yMargin = 50)
bool event (self, QEvent)
bool eventFilter (self, QObject, QEvent)
bool focusNextPrevChild (self, bool next)
resizeEvent (self, QResizeEvent)
scrollContentsBy (self, int dx, int dy)
setAlignment (self, Qt.Alignment)
setWidget (self, QWidget w)
setWidgetResizable (self, bool resizable)
QSize sizeHint (self)
QWidget takeWidget (self)
QWidget widget (self)
bool widgetResizable (self)
Detailed Description
该QScrollArea类提供了一个滚动视图到另一个部件。
一种涡旋式区域用于一帧中显示的子插件的内容。如果窗口部件超过该帧的大小,该视图可以提供滚动条,以使子部件的整个区域,可以被观看。孩子小部件必须被指定setWidget( ) 。例如:
[QLabel](docs_qlabel.html) *imageLabel = new [QLabel](docs_qlabel.html);
[QImage](docs_qimage.html) image("happyguy.png");
imageLabel->setPixmap([QPixmap](docs_qpixmap.html).fromImage(image));
scrollArea = new QScrollArea;
scrollArea->setBackgroundRole([QPalette](docs_qpalette.html).Dark);
scrollArea->setWidget(imageLabel);
上面的代码创建一个包含一个图像标籤的滚动区域(在下面的图片所示) 。当缩放该图像,该滚动区域可以提供必要的滚动条:
| |
|
|
滚动条的外观取决于当前设置的scroll bar policies。你可以控制使用从继承的功能滚动条的外观QAbstractScrollArea。
例如,您可以设置QAbstractScrollArea.horizontalScrollBarPolicy和QAbstractScrollArea.verticalScrollBarPolicy属性。或者,如果你想要滚动条来动态地调整时的滚动区域的内容改变,则可以使用horizontalScrollBar()和verticalScrollBar()功能(这使您可以访问滚动条),并设置每当滚动区域的内容改变滚动条的价值观,用QScrollBar.setValue()函数。
您可以使用检索子插件的widget()函数。该视图可以用来被调整大小与setWidgetResizable()函数。窗口小部件的取向可以与指定的setAlignment( ) 。
两个便利的函数ensureVisible()和ensureWidgetVisible()保证的内容的特定区域是在视口内可见的,通过在必要时滚动的内容。
Size Hints and Layouts
当使用一个滚动区域来显示一个自定义的窗口小部件的内容,它保证是重要的size hint儿童的插件被设置为一个合适的值。如果一个标准QWidget用于子部件,它可能需要调用QWidget.setMinimumSize()以确保该窗口小部件的内容被滚动区域内的正确显示。
如果一个滚动区域用于显示包含配置在布局子部件一个部件的内容,但要认识到,在布局的大小政策也将确定小窗口的大小是很重要的。如果你打算来动态改变布局的内容,这是特别有用的就知道了。在这种情况下,设置布局的size constraint属性之一,它提供的最小和/或布局的最大尺寸(例如,限制,QLayout.SetMinAndMaxSize)将导致滚动面积的大小进行更新时的布局变更的内容。
对于使用QScrollArea类的完整示例,请参见Image Viewer例子。该示例显示了如何结合QLabel和QScrollArea以显示图像。
Method Documentation
QScrollArea.__init__ (self, QWidget parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造具有给定一个空的滚动区域parent。
See also setWidget( ) 。
Qt.Alignment QScrollArea.alignment (self)
[
QScrollArea.ensureVisible (self, int x, int y, int xMargin = 50, int yMargin = 50)
滚动滚动区域的内容,使该点(x,y)是由以像素为单位指定页边距视口的区域内可见xmargin和ymargin。如果指定的点不能达到,其内容被滚动到最近的有效位置。两个边距的默认值是50个像素。
QScrollArea.ensureWidgetVisible (self, QWidget childWidget, int xMargin = 50, int yMargin = 50)
](docs_index.htm)
滚动滚动区域的内容,这样childWidget的QScrollArea.widget( )是通过以像素为单位指定页边距视口内可见xmargin和ymargin。如果指定的点不能达到,其内容被滚动到最近的有效位置。两个边距的默认值是50个像素。
这个函数中引入了Qt 4.2中。
bool QScrollArea.event (self, QEvent)
从重新实现QObject.event( ) 。
bool QScrollArea.eventFilter (self, QObject, QEvent)
从重新实现QObject.eventFilter( ) 。
bool QScrollArea.focusNextPrevChild (self, bool next)
从重新实现QWidget.focusNextPrevChild( ) 。
QScrollArea.resizeEvent (self, QResizeEvent)
从重新实现QWidget.resizeEvent( ) 。
QScrollArea.scrollContentsBy (self, int dx, int dy)
从重新实现QAbstractScrollArea.scrollContentsBy( ) 。
QScrollArea.setAlignment (self, Qt.Alignment)
QScrollArea.setWidget (self, QWidget w)
该w说法有它的所有权转移给Qt的。
设置滚动区域的widget。
该widget成为滚动区域的一个孩子,当滚动区域被删除或者当一个新的widget设定将被破坏。
widget的autoFillBackground属性将被设置为true
。
如果滚动区域是可见的,当widget是说,你必须show()它明确。
请注意,您必须添加的布局widget在打电话之前此功能,如果您以后添加吧,widget将不可见 - 无论何时你的show()滚动区域。在这种情况下,你也可以不show()该widget后来。
See also widget( ) 。
QScrollArea.setWidgetResizable (self, bool resizable)
QSize QScrollArea.sizeHint (self)
QWidget QScrollArea.takeWidget (self)
[
该QWidget结果
消除了滚动区域的窗口小部件,并通过小部件的所有权给调用者。
](docs_qwidget.html)
QWidget QScrollArea.widget (self)
[
返回滚动区域的窗口小部件,或者0,如果是没有的。
](docs_qwidget.html)
bool QScrollArea.widgetResizable (self)