⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qscrollview.html

📁 QT参考文档
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/reggie/tmp/qt-3.0-reggie-5401/qt-x11-commercial-3.0.5/src/widgets/qscrollview.cpp:342 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Translator" content="Cavendish">
<meta name="Qt zh_CN Documents Website" content="http://www.qiliang.net/qt">
<title>QScrollView类</title>
<style type="text/css"><!--
h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; font-family: "Times New Roman" }
--></style>
</head>
<body>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr bgcolor="#E5E5E5">
<td valign=center>
 <a href="index.html">
<font color="#004faf">主页</font></a>
 | <a href="classes.html">
<font color="#004faf">所有的类</font></a>
 | <a href="mainclasses.html">
<font color="#004faf">主要的类</font></a>
 | <a href="annotated.html">
<font color="#004faf">注释的类</font></a>
 | <a href="groups.html">
<font color="#004faf">分组的类</font></a>
 | <a href="functions.html">
<font color="#004faf">函数</font></a>
</td>
<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table>
<h1 align=center>QScrollView类参考</h1>

<p>QScrollView窗口部件提供了一块在需要时可以出现滚动条的滚动区域。
<a href="#details">详情请见……</a>
<p><tt>#include &lt;<a href="qscrollview-h.html">qscrollview.h</a>&gt;</tt>
<p>继承了<a href="qframe.html">QFrame</a>。
<p>被<a href="qcanvasview.html">QCanvasView</a>、<a href="qtable.html">QTable</a>、<a href="qgridview.html">QGridView</a>、<a href="qiconview.html">QIconView</a>、<a href="qlistbox.html">QListBox</a>、<a href="qlistview.html">QListView</a>和<a href="qtextedit.html">QTextEdit</a>继承。
<p><a href="qscrollview-members.html">所有成员函数的列表。</a>
<h2>公有成员</h2>
<ul>
<li><div class=fn><a href="#QScrollView"><b>QScrollView</b></a> ( QWidget&nbsp;*&nbsp;parent = 0, const&nbsp;char&nbsp;*&nbsp;name = 0, WFlags&nbsp;f = 0 )</div></li>
<li><div class=fn><a href="#~QScrollView"><b>~QScrollView</b></a> ()</div></li>
<li><div class=fn>enum <a href="#ResizePolicy-enum"><b>ResizePolicy</b></a> { Default, Manual, AutoOne, AutoOneFit }</div></li>
<li><div class=fn>virtual void <a href="#setResizePolicy"><b>setResizePolicy</b></a> ( ResizePolicy )</div></li>
<li><div class=fn>ResizePolicy <a href="#resizePolicy"><b>resizePolicy</b></a> () const</div></li>
<li><div class=fn>void <a href="#removeChild"><b>removeChild</b></a> ( QWidget&nbsp;*&nbsp;child )</div></li>
<li><div class=fn>virtual void <a href="#addChild"><b>addChild</b></a> ( QWidget&nbsp;*&nbsp;child, int&nbsp;x = 0, int&nbsp;y = 0 )</div></li>
<li><div class=fn>virtual void <a href="#moveChild"><b>moveChild</b></a> ( QWidget&nbsp;*&nbsp;child, int&nbsp;x, int&nbsp;y )</div></li>
<li><div class=fn>int <a href="#childX"><b>childX</b></a> ( QWidget&nbsp;*&nbsp;child )</div></li>
<li><div class=fn>int <a href="#childY"><b>childY</b></a> ( QWidget&nbsp;*&nbsp;child )</div></li>
<li><div class=fn>bool childIsVisible ( QWidget&nbsp;*&nbsp;child ) &nbsp;<em>(obsolete)</em></div></li>
<li><div class=fn>void showChild ( QWidget&nbsp;*&nbsp;child, bool&nbsp;y = TRUE ) &nbsp;<em>(obsolete)</em></div></li>
<li><div class=fn>enum <a href="#ScrollBarMode-enum"><b>ScrollBarMode</b></a> { Auto, AlwaysOff, AlwaysOn }</div></li>
<li><div class=fn>ScrollBarMode <a href="#vScrollBarMode"><b>vScrollBarMode</b></a> () const</div></li>
<li><div class=fn>virtual void <a href="#setVScrollBarMode"><b>setVScrollBarMode</b></a> ( ScrollBarMode )</div></li>
<li><div class=fn>ScrollBarMode <a href="#hScrollBarMode"><b>hScrollBarMode</b></a> () const</div></li>
<li><div class=fn>virtual void <a href="#setHScrollBarMode"><b>setHScrollBarMode</b></a> ( ScrollBarMode )</div></li>
<li><div class=fn>QWidget * <a href="#cornerWidget"><b>cornerWidget</b></a> () const</div></li>
<li><div class=fn>virtual void <a href="#setCornerWidget"><b>setCornerWidget</b></a> ( QWidget&nbsp;*&nbsp;corner )</div></li>
<li><div class=fn>QScrollBar * <a href="#horizontalScrollBar"><b>horizontalScrollBar</b></a> () const</div></li>
<li><div class=fn>QScrollBar * <a href="#verticalScrollBar"><b>verticalScrollBar</b></a> () const</div></li>
<li><div class=fn>QWidget * <a href="#viewport"><b>viewport</b></a> () const</div></li>
<li><div class=fn>QWidget * <a href="#clipper"><b>clipper</b></a> () const</div></li>
<li><div class=fn>int <a href="#visibleWidth"><b>visibleWidth</b></a> () const</div></li>
<li><div class=fn>int <a href="#visibleHeight"><b>visibleHeight</b></a> () const</div></li>
<li><div class=fn>int <a href="#contentsWidth"><b>contentsWidth</b></a> () const</div></li>
<li><div class=fn>int <a href="#contentsHeight"><b>contentsHeight</b></a> () const</div></li>
<li><div class=fn>int <a href="#contentsX"><b>contentsX</b></a> () const</div></li>
<li><div class=fn>int <a href="#contentsY"><b>contentsY</b></a> () const</div></li>
<li><div class=fn>void <a href="#updateContents"><b>updateContents</b></a> ( int&nbsp;x, int&nbsp;y, int&nbsp;w, int&nbsp;h )</div></li>
<li><div class=fn>void <a href="#updateContents-2"><b>updateContents</b></a> ( const&nbsp;QRect&nbsp;&amp;&nbsp;r )</div></li>
<li><div class=fn>void <a href="#updateContents-3"><b>updateContents</b></a> ()</div></li>
<li><div class=fn>void <a href="#repaintContents"><b>repaintContents</b></a> ( int&nbsp;x, int&nbsp;y, int&nbsp;w, int&nbsp;h, bool&nbsp;erase = TRUE )</div></li>
<li><div class=fn>void <a href="#repaintContents-2"><b>repaintContents</b></a> ( const&nbsp;QRect&nbsp;&amp;&nbsp;r, bool&nbsp;erase = TRUE )</div></li>
<li><div class=fn>void <a href="#repaintContents-3"><b>repaintContents</b></a> ( bool&nbsp;erase = TRUE )</div></li>
<li><div class=fn>void <a href="#contentsToViewport"><b>contentsToViewport</b></a> ( int&nbsp;x, int&nbsp;y, int&nbsp;&amp;&nbsp;vx, int&nbsp;&amp;&nbsp;vy ) const</div></li>
<li><div class=fn>void <a href="#viewportToContents"><b>viewportToContents</b></a> ( int&nbsp;vx, int&nbsp;vy, int&nbsp;&amp;&nbsp;x, int&nbsp;&amp;&nbsp;y ) const</div></li>
<li><div class=fn>QPoint <a href="#contentsToViewport-2"><b>contentsToViewport</b></a> ( const&nbsp;QPoint&nbsp;&amp;&nbsp;p ) const</div></li>
<li><div class=fn>QPoint <a href="#viewportToContents-2"><b>viewportToContents</b></a> ( const&nbsp;QPoint&nbsp;&amp;&nbsp;vp ) const</div></li>
<li><div class=fn>void <a href="#enableClipper"><b>enableClipper</b></a> ( bool&nbsp;y )</div></li>
<li><div class=fn>void <a href="#setStaticBackground"><b>setStaticBackground</b></a> ( bool&nbsp;y )</div></li>
<li><div class=fn>bool <a href="#hasStaticBackground"><b>hasStaticBackground</b></a> () const</div></li>
<li><div class=fn>QSize <a href="#viewportSize"><b>viewportSize</b></a> ( int&nbsp;x, int&nbsp;y ) const</div></li>
<li><div class=fn>virtual void <a href="#setDragAutoScroll"><b>setDragAutoScroll</b></a> ( bool&nbsp;b )</div></li>
<li><div class=fn>bool <a href="#dragAutoScroll"><b>dragAutoScroll</b></a> () const</div></li>
</ul>
<h2>公有槽</h2>
<ul>
<li><div class=fn>virtual void <a href="#resizeContents"><b>resizeContents</b></a> ( int&nbsp;w, int&nbsp;h )</div></li>
<li><div class=fn>void <a href="#scrollBy"><b>scrollBy</b></a> ( int&nbsp;dx, int&nbsp;dy )</div></li>
<li><div class=fn>virtual void <a href="#setContentsPos"><b>setContentsPos</b></a> ( int&nbsp;x, int&nbsp;y )</div></li>
<li><div class=fn>void <a href="#ensureVisible"><b>ensureVisible</b></a> ( int&nbsp;x, int&nbsp;y )</div></li>
<li><div class=fn>void <a href="#ensureVisible-2"><b>ensureVisible</b></a> ( int&nbsp;x, int&nbsp;y, int&nbsp;xmargin, int&nbsp;ymargin )</div></li>
<li><div class=fn>void <a href="#center"><b>center</b></a> ( int&nbsp;x, int&nbsp;y )</div></li>
<li><div class=fn>void <a href="#center-2"><b>center</b></a> ( int&nbsp;x, int&nbsp;y, float&nbsp;xmargin, float&nbsp;ymargin )</div></li>
<li><div class=fn>void <a href="#updateScrollBars"><b>updateScrollBars</b></a> ()</div></li>
</ul>
<h2>信号</h2>
<ul>
<li><div class=fn>void <a href="#contentsMoving"><b>contentsMoving</b></a> ( int&nbsp;x, int&nbsp;y )</div></li>
</ul>
<h2>属性</h2>
<ul>
<li><div class=fn>int <a href="#contentsHeight-prop"><b>contentsHeight</b></a>&nbsp;- 内容区域的高度&nbsp;<em>(只读)</em></div></li>
<li><div class=fn>int <a href="#contentsWidth-prop"><b>contentsWidth</b></a>&nbsp;- 内容区域的宽度&nbsp;<em>(只读)</em></div></li>
<li><div class=fn>int <a href="#contentsX-prop"><b>contentsX</b></a>&nbsp;- 在视口的左边缘的内容的X坐标&nbsp;<em>(只读)</em></div></li>
<li><div class=fn>int <a href="#contentsY-prop"><b>contentsY</b></a>&nbsp;- 在视口的左边缘的内容的Y坐标&nbsp;<em>(只读)</em></div></li>
<li><div class=fn>bool <a href="#dragAutoScroll-prop"><b>dragAutoScroll</b></a>&nbsp;- 在拖动移动事件中自动滚动是否生效</div></li>
<li><div class=fn>ScrollBarMode <a href="#hScrollBarMode-prop"><b>hScrollBarMode</b></a>&nbsp;- 水平滚动条模式</div></li>
<li><div class=fn>ResizePolicy <a href="#resizePolicy-prop"><b>resizePolicy</b></a>&nbsp;- 当前重定义大小策略</div></li>
<li><div class=fn>ScrollBarMode <a href="#vScrollBarMode-prop"><b>vScrollBarMode</b></a>&nbsp;- 垂直滚动条模式</div></li>
<li><div class=fn>int <a href="#visibleHeight-prop"><b>visibleHeight</b></a>&nbsp;- 可视内容的垂直总量&nbsp;<em>(只读)</em></div></li>
<li><div class=fn>int <a href="#visibleWidth-prop"><b>visibleWidth</b></a>&nbsp;- 可视内容的水平总量&nbsp;<em>(只读)</em></div></li>
</ul>
<h2>保护成员</h2>
<ul>
<li><div class=fn>virtual void <a href="#drawContents"><b>drawContents</b></a> ( QPainter&nbsp;*&nbsp;p, int&nbsp;clipx, int&nbsp;clipy, int&nbsp;clipw, int&nbsp;cliph )</div></li>
<li><div class=fn>virtual void <a href="#drawContentsOffset"><b>drawContentsOffset</b></a> ( QPainter&nbsp;*&nbsp;p, int&nbsp;offsetx, int&nbsp;offsety, int&nbsp;clipx, int&nbsp;clipy, int&nbsp;clipw, int&nbsp;cliph )</div></li>
<li><div class=fn>virtual void <a href="#contentsMousePressEvent"><b>contentsMousePressEvent</b></a> ( QMouseEvent * )</div></li>
<li><div class=fn>virtual void <a href="#contentsMouseReleaseEvent"><b>contentsMouseReleaseEvent</b></a> ( QMouseEvent * )</div></li>
<li><div class=fn>virtual void <a href="#contentsMouseDoubleClickEvent"><b>contentsMouseDoubleClickEvent</b></a> ( QMouseEvent * )</div></li>
<li><div class=fn>virtual void <a href="#contentsMouseMoveEvent"><b>contentsMouseMoveEvent</b></a> ( QMouseEvent * )</div></li>
<li><div class=fn>virtual void <a href="#contentsDragEnterEvent"><b>contentsDragEnterEvent</b></a> ( QDragEnterEvent * )</div></li>
<li><div class=fn>virtual void <a href="#contentsDragMoveEvent"><b>contentsDragMoveEvent</b></a> ( QDragMoveEvent * )</div></li>
<li><div class=fn>virtual void <a href="#contentsDragLeaveEvent"><b>contentsDragLeaveEvent</b></a> ( QDragLeaveEvent * )</div></li>
<li><div class=fn>virtual void <a href="#contentsDropEvent"><b>contentsDropEvent</b></a> ( QDropEvent * )</div></li>
<li><div class=fn>virtual void <a href="#contentsWheelEvent"><b>contentsWheelEvent</b></a> ( QWheelEvent&nbsp;*&nbsp;e )</div></li>
<li><div class=fn>virtual void <a href="#contentsContextMenuEvent"><b>contentsContextMenuEvent</b></a> ( QContextMenuEvent&nbsp;*&nbsp;e )</div></li>
<li><div class=fn>virtual void <a href="#viewportPaintEvent"><b>viewportPaintEvent</b></a> ( QPaintEvent&nbsp;*&nbsp;pe )</div></li>
<li><div class=fn>virtual void <a href="#viewportResizeEvent"><b>viewportResizeEvent</b></a> ( QResizeEvent * )</div></li>
<li><div class=fn>virtual void <a href="#setMargins"><b>setMargins</b></a> ( int&nbsp;left, int&nbsp;top, int&nbsp;right, int&nbsp;bottom )</div></li>
<li><div class=fn>int <a href="#leftMargin"><b>leftMargin</b></a> () const</div></li>
<li><div class=fn>int <a href="#topMargin"><b>topMargin</b></a> () const</div></li>
<li><div class=fn>int <a href="#rightMargin"><b>rightMargin</b></a> () const</div></li>
<li><div class=fn>int <a href="#bottomMargin"><b>bottomMargin</b></a> () const</div></li>
<li><div class=fn>virtual void <a href="#setHBarGeometry"><b>setHBarGeometry</b></a> ( QScrollBar&nbsp;&amp;&nbsp;hbar, int&nbsp;x, int&nbsp;y, int&nbsp;w, int&nbsp;h )</div></li>
<li><div class=fn>virtual void <a href="#setVBarGeometry"><b>setVBarGeometry</b></a> ( QScrollBar&nbsp;&amp;&nbsp;vbar, int&nbsp;x, int&nbsp;y, int&nbsp;w, int&nbsp;h )</div></li>
<li><div class=fn>virtual bool <a href="#eventFilter"><b>eventFilter</b></a> ( QObject&nbsp;*&nbsp;obj, QEvent&nbsp;*&nbsp;e )</div></li>
</ul>
<hr><a name="details"></a><h2>详细描述</h2>


QScrollView窗口部件提供了一块在需要时可以出现滚动条的滚动区域。
<p> 

<p> QScrollView是一个很大的画布——可能比底下窗口系统通常支持的坐标系统大得多。这很重要,因为它很容易超越这些限制(例如,一些网页的高度超过32000像素)。另外,QScrollView可以有一个被放置的QWidget,可以在画出的内容上滚动。这些子窗口部件也可以放在普通坐标范围的外面(但是它们还被限制在大小之内)。
<p> 为了提供窗口部件的内容,QScrollView中继承的,重新实现了<a href="#drawContents">drawContents</a>()并且使用<a href="#resizeContents">resizeContents</a>()设置查看区域的大小。使用<a href="#addChild">addChild</a>()和<a href="#moveChild">moveChild</a>()在视图中定位窗口部件。
<p> 为了有效地使用QScrollView,理解它所使用的三种风格的窗口部件结构是很重要的:一个单一的大的子窗口部件,一个大的放置一些窗口部件的平面区域和一个大的放置很多窗口部件的平面区域。
<p> <h3> 使用一个大的窗口部件
</h3>
<a name="1"></a><p> <img src=qscrollview-vp2.png>
<p> 首先,QScrollView的最简单的用法(就像上面描述的)适合任何一个维度不超过4000像素的滚动区域(这是X11服务器的最大可靠大小)。在这种方法中,你只需要把一个大的子窗口部件放在QScrollView中。这个孩子是滚动视图中的<a href="#viewport">viewport</a>()的孩子并且通过addChild()添加:
<pre>
    QScrollView* sv = new QScrollView(...);
    <a href="qvbox.html">QVBox</a>* big_box = new <a href="qvbox.html">QVBox</a>(sv-&gt;<a href="#viewport">viewport</a>());
    sv-&gt;<a href="#addChild">addChild</a>(big_box);
</pre>
 
你也可以像对任何窗口部件一样,继续在滚动视图中单一孩子中添加任意子窗口部件:
<pre>
    <a href="qlabel.html">QLabel</a>* child1 = new <a href="qlabel.html">QLabel</a>("CHILD", big_box);
    <a href="qlabel.html">QLabel</a>* child2 = new <a href="qlabel.html">QLabel</a>("CHILD", big_box);
    <a href="qlabel.html">QLabel</a>* child3 = new <a href="qlabel.html">QLabel</a>("CHILD", big_box);
    ...
</pre>
 
<p> 这里QScrollView有四个孩子:viewport()、<a href="#verticalScrollBar">verticalScrollBar</a>()、<a href="#horizontalScrollBar">horizontalScrollBar</a>()和一个小的<a href="#cornerWidget">cornerWidget</a>()。viewport()有一个孩子——大的<a href="qvbox.html">QVBox</a>。这个QVBox有三个<a href="qlabel.html">QLabel</a>对象作为子窗口部件。当视图被滚动,QVBox被移动,它的孩子就像通常的子窗口部件那样被移动。
<p> <h3> 使用一个放置一些窗口部件的非常大的视图
</h3>
<a name="1-1"></a><p> <img src=qscrollview-vp.png>
<p> QScrollView的第二种用法(就像上面描述的)适合有少量窗口部件的任何一个维度超过4000像素的非常大的滚动区域。在这种情况下,你调用<a href="#resizeContents">resizeContents</a>()来设置区域的大小并且重新实现<a href="#drawContents">drawContents</a>()来绘制内容。你也可以通过让它们成为<a href="#viewport">viewport</a>()的孩子来添加窗口部件并且使用<a href="#addChild">addChild</a>()来添加它们(这和上面的单一大窗口部件的用法相同):
<pre>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -