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

📄 qwidget.html

📁 QT3.0.5的帮助文档的中文翻译
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<li><div class=fn>void <a href="#resetInputContext"><b>resetInputContext</b></a> ()</div></li>
<li><div class=fn>virtual void <a href="#create"><b>create</b></a> ( WId&nbsp;window = 0, bool&nbsp;initializeWindow = TRUE, bool&nbsp;destroyOldWindow = TRUE )</div></li>
<li><div class=fn>virtual void <a href="#destroy"><b>destroy</b></a> ( bool&nbsp;destroyWindow = TRUE, bool&nbsp;destroySubWindows = TRUE )</div></li>
<li><div class=fn>WFlags <a href="#getWFlags"><b>getWFlags</b></a> () const</div></li>
<li><div class=fn>virtual void <a href="#setWFlags"><b>setWFlags</b></a> ( WFlags&nbsp;f )</div></li>
<li><div class=fn>void <a href="#clearWFlags"><b>clearWFlags</b></a> ( WFlags&nbsp;f )</div></li>
<li><div class=fn>virtual bool <a href="#focusNextPrevChild"><b>focusNextPrevChild</b></a> ( bool&nbsp;next )</div></li>
<li><div class=fn>QFocusData * <a href="#focusData"><b>focusData</b></a> ()</div></li>
<li><div class=fn>virtual void <a href="#setKeyCompression"><b>setKeyCompression</b></a> ( bool&nbsp;compress )</div></li>
<li><div class=fn>virtual void <a href="#setMicroFocusHint"><b>setMicroFocusHint</b></a> ( int&nbsp;x, int&nbsp;y, int&nbsp;width, int&nbsp;height, bool&nbsp;text = TRUE, QFont&nbsp;*&nbsp;f = 0 )</div></li>
</ul>
<hr><a name="details"></a><h2>详细描述</h2>


QWidget类是所有用户界面对象的基类。
<p> 

<p> 窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。
<p> <a href="qdialog.html">QDialog</a>是最普通的顶级窗口。不被嵌入到一个父窗口部件的窗口部件被叫做顶级窗口部件。通常情况下,顶级窗口部件是有框架和标题栏的窗口(尽管如果使用了一定的窗口部件标记,创建顶级窗口部件时也可能没有这些装饰。)在Qt中,<a href="qmainwindow.html">QMainWindow</a>和和不同的<a href="qdialog.html">QDialog</a>的子类是最普通的顶级窗口。
<p> 一个没有父窗口部件的窗口部件一直是顶级窗口部件。
<p> 非顶级窗口部件是子窗口部件。它们是它们的父窗口部件中的子窗口。你通常不能在视觉角度从它们的父窗口部件中辨别一个子窗口部件。在Qt中的绝大多数其它窗口部件仅仅作为子窗口部件才是有用的。(当然把一个按钮作为或者叫做顶级窗口部件也是可能的,但绝大多数人喜欢把他们的按钮放到其它按钮当中,比如QDialog。)
<p> QWidget有很多成员函数,但是它们中的一些有少量的直接功能:例如,QWidget有一个字体属性,但是它自己从来不用。有很多继承它的子类提供了实际的功能,比如<a href="qpushbutton.html">QPushButton</a>、<a href="qlistbox.html">QListBox</a>和<a href="qtabdialog.html">QTabDialog</a>等等。
<p> <h3> 函数分组:
</h3>
<a name="1"></a><p> <center><table cellpadding="4" cellspacing="2" border="0" width="100%">
<tr bgcolor="#a2c511"> <th valign="top" width="15%">上下文 <th valign="top" width="85%">函数
<tr bgcolor="#f0f0f0"> <td valign="top">窗口函数 <td valign="top">
<a href="#show">show</a>()、<a href="#hide">hide</a>()、<a href="#raise">raise</a>()、<a href="#lower">lower</a>()、<a href="#close">close</a>()。
<tr bgcolor="#d0d0d0"> <td valign="top">顶级窗口 <td valign="top">
<a href="#caption">caption</a>()、<a href="#setCaption">setCaption</a>()、<a href="#icon">icon</a>()、<a href="#setIcon">setIcon</a>()、<a href="#iconText">iconText</a>()、<a href="#setIconText">setIconText</a>()、<a href="#isActiveWindow">isActiveWindow</a>()、<a href="#setActiveWindow">setActiveWindow</a>()、<a href="#showMinimized">showMinimized</a>()、<a href="#showMaximized">showMaximized</a>()、<a href="#showFullScreen">showFullScreen</a>()、<a href="#showNormal">showNormal</a>()。
<tr bgcolor="#f0f0f0"> <td valign="top">窗口内容 <td valign="top">
<a href="#update">update</a>()、<a href="#repaint">repaint</a>()、<a href="#erase">erase</a>()、<a href="#scroll">scroll</a>()、<a href="#updateMask">updateMask</a>()。
<tr bgcolor="#d0d0d0"> <td valign="top">几何形状 <td valign="top">
<a href="#pos">pos</a>()、<a href="#size">size</a>()、<a href="#rect">rect</a>()、<a href="#x">x</a>()、<a href="#y">y</a>()、<a href="#width">width</a>()、<a href="#height">height</a>()、<a href="#sizePolicy">sizePolicy</a>()、<a href="#setSizePolicy">setSizePolicy</a>()、<a href="#sizeHint">sizeHint</a>()、<a href="#updateGeometry">updateGeometry</a>()、<a href="#layout">layout</a>()、<a href="#move">move</a>()、<a href="#resize">resize</a>()、<a href="#setGeometry">setGeometry</a>()、<a href="#frameGeometry">frameGeometry</a>()、<a href="#geometry">geometry</a>()、<a href="#childrenRect">childrenRect</a>()、<a href="#adjustSize">adjustSize</a>()、<a href="#mapFromGlobal">mapFromGlobal</a>()、<a href="#mapFromParent">mapFromParent</a>()、<a href="#mapToGlobal">mapToGlobal</a>()、<a href="#mapToParent">mapToParent</a>()、<a href="#maximumSize">maximumSize</a>()、<a href="#minimumSize">minimumSize</a>()、<a href="#sizeIncrement">sizeIncrement</a>()、<a href="#setMaximumSize">setMaximumSize</a>()、<a href="#setMinimumSize">setMinimumSize</a>()、<a href="#setSizeIncrement">setSizeIncrement</a>()、<a href="#setBaseSize">setBaseSize</a>()、<a href="#setFixedSize">setFixedSize</a>()。
<tr bgcolor="#f0f0f0"> <td valign="top">模式 <td valign="top">
<a href="#isVisible">isVisible</a>()、<a href="#isVisibleTo">isVisibleTo</a>()、<a href="#visibleRect">visibleRect</a>()、<a href="#isMinimized">isMinimized</a>()、<a href="#isDesktop">isDesktop</a>()、<a href="#isEnabled">isEnabled</a>()、<a href="#isEnabledTo">isEnabledTo</a>()、<a href="#isModal">isModal</a>()、<a href="#isPopup">isPopup</a>()、<a href="#isTopLevel">isTopLevel</a>()、<a href="#setEnabled">setEnabled</a>()、<a href="#hasMouseTracking">hasMouseTracking</a>()、<a href="#setMouseTracking">setMouseTracking</a>()、<a href="#isUpdatesEnabled">isUpdatesEnabled</a>()、<a href="#setUpdatesEnabled">setUpdatesEnabled</a>()。
<tr bgcolor="#d0d0d0"> <td valign="top">观感 <td valign="top">
<a href="#style">style</a>()、<a href="#setStyle">setStyle</a>()、<a href="#cursor">cursor</a>()、<a href="#setCursor">setCursor</a>()、<a href="#font">font</a>()、<a href="#setFont">setFont</a>()、<a href="#palette">palette</a>()、<a href="#setPalette">setPalette</a>()、<a href="#backgroundMode">backgroundMode</a>()、<a href="#setBackgroundMode">setBackgroundMode</a>()、<a href="#colorGroup">colorGroup</a>()、<a href="#fontMetrics">fontMetrics</a>()、<a href="#fontInfo">fontInfo</a>()。
<tr bgcolor="#f0f0f0"> <td valign="top"><a href="focus.html#keyboard-focus">键盘焦点</a>函数 <td valign="top">
<a href="#isFocusEnabled">isFocusEnabled</a>()、<a href="#setFocusPolicy">setFocusPolicy</a>()、<a href="#focusPolicy">focusPolicy</a>()、<a href="#hasFocus">hasFocus</a>()、<a href="#setFocus">setFocus</a>()、<a href="#clearFocus">clearFocus</a>()、<a href="#setTabOrder">setTabOrder</a>()、<a href="#setFocusProxy">setFocusProxy</a>()。
<tr bgcolor="#d0d0d0"> <td valign="top">鼠标和键盘捕获 <td valign="top">
<a href="#grabMouse">grabMouse</a>()、<a href="#releaseMouse">releaseMouse</a>()、<a href="#grabKeyboard">grabKeyboard</a>()、<a href="#releaseKeyboard">releaseKeyboard</a>()、<a href="#mouseGrabber">mouseGrabber</a>()、<a href="#keyboardGrabber">keyboardGrabber</a>()。
<tr bgcolor="#f0f0f0"> <td valign="top">事件处理器 <td valign="top">
<a href="#event">event</a>()、<a href="#mousePressEvent">mousePressEvent</a>()、<a href="#mouseReleaseEvent">mouseReleaseEvent</a>()、<a href="#mouseDoubleClickEvent">mouseDoubleClickEvent</a>()、<a href="#mouseMoveEvent">mouseMoveEvent</a>()、<a href="#keyPressEvent">keyPressEvent</a>()、<a href="#keyReleaseEvent">keyReleaseEvent</a>()、<a href="#focusInEvent">focusInEvent</a>()、<a href="#focusOutEvent">focusOutEvent</a>()、<a href="#wheelEvent">wheelEvent</a>()、<a href="#enterEvent">enterEvent</a>()、<a href="#leaveEvent">leaveEvent</a>()、<a href="#paintEvent">paintEvent</a>()、<a href="#moveEvent">moveEvent</a>()、<a href="#resizeEvent">resizeEvent</a>()、<a href="#closeEvent">closeEvent</a>()、<a href="#dragEnterEvent">dragEnterEvent</a>()、<a href="#dragMoveEvent">dragMoveEvent</a>()、<a href="#dragLeaveEvent">dragLeaveEvent</a>()、<a href="#dropEvent">dropEvent</a>()、<a href="qobject.html#childEvent">childEvent</a>()、<a href="#showEvent">showEvent</a>()、<a href="#hideEvent">hideEvent</a>()、<a href="qobject.html#customEvent">customEvent</a>()。
<tr bgcolor="#d0d0d0"> <td valign="top">变化处理器 <td valign="top">
<a href="#enabledChange">enabledChange</a>()、<a href="#fontChange">fontChange</a>()、<a href="#paletteChange">paletteChange</a>()、<a href="#styleChange">styleChange</a>()、<a href="#windowActivationChange">windowActivationChange</a>()。
<tr bgcolor="#f0f0f0"> <td valign="top">系统函数 <td valign="top">
<a href="#parentWidget">parentWidget</a>()、<a href="#topLevelWidget">topLevelWidget</a>()、<a href="#reparent">reparent</a>()、<a href="#polish">polish</a>()、<a href="#winId">winId</a>()、<a href="#find">find</a>()、<a href="#metric">metric</a>()。
<tr bgcolor="#d0d0d0"> <td valign="top">这是什么的帮助 <td valign="top">
<a href="#customWhatsThis">customWhatsThis</a>()。
<tr bgcolor="#f0f0f0"> <td valign="top">内部核心函数 <td valign="top">
<a href="#focusNextPrevChild">focusNextPrevChild</a>()、wmapper()、<a href="#clearWFlags">clearWFlags</a>()、<a href="#getWFlags">getWFlags</a>()、<a href="#setWFlags">setWFlags</a>()、<a href="#testWFlags">testWFlags</a>()。
</table></center>
<p> 每一个窗口部件构造函数接受两个或三个标准参数:
<ol type=1>
<li> <tt>QWidget *parent = 0</tt>是新窗口部件的父窗口部件。如果为0(默认),新的窗口部件将是一个顶级窗口部件。如果不是,它将会使<em>parent</em>的一个孩子,并且被<em>parent</em>的几何形状所强迫(除非你指定<a href="qt.html#WidgetFlags-enum">WType_TopLevel</a>作为<a href="qt.html#WidgetFlags">窗口部件标记</a>)。
<li> <tt>const char *name = 0</tt>是新窗口部件的窗口部件名称。你可以使用<a href="qobject.html#name">name</a>()来访问它。窗口部件名称很少被程序员用到,但是对于图形用户界面构造程序,比如<em>Qt设计器</em>,是相当重要的(你可以在<em>Qt设计器</em>中命名一个窗口部件,并且在你的代码中使用这个名字来<a href="qobject.html#connect">连接</a>它)。<a href="qobject.html#dumpObjectTree">dumpObjectTree</a>()调试函数也使用它。
<li> <tt>WFlags f = 0</tt>(在可用的情况下)设置窗口部件标记,默认设置对于几乎所有窗口部件都是适用的,但是,举例来说,一个没有窗口系统框架的顶级窗口部件,你必须使用特定的标记。
</ol>
<p> tictac/tictac.cpp实例程序是一个简单窗口部件的好实例。它包含了一些的事件处理器(就像所有窗口部件所必须的那样)、一些被指定给它的定制处理(就像所有有用的窗口部件做的那样)并且还有一些孩子和联机。它所做的每一件事都响应对应的一个事件:这是到目前为止设计图形用户界面的最普通的方式。
<p> 你自己将需要为你的窗口部件提供内容,但是这里是一些简要的运行事件,从最普通的开始:
<p> <ul>
<p> <li> <a href="#paintEvent">paintEvent</a>() - 只要窗口部件需要被重绘就被调用。每个要显示输出的窗口部件必须实现它并且<em>不</em>在paintEvent()之外在屏幕上绘制是明智的。
<p> <li> <a href="#resizeEvent">resizeEvent</a>() - 当窗口部件被重新定义大小时被调用。
<p> <li> <a href="#mousePressEvent">mousePressEvent</a>() - 当鼠标键被按下时被调用。有六个鼠标相关事件,但是鼠标按下和鼠标释放事件是到目前为止最重要的。当鼠标在窗口部件内或者当它使用<a href="#grabMouse">grabMouse</a>()来捕获鼠标时,它接收鼠标按下事件。
<p> <li> <a href="#mouseReleaseEvent">mouseReleaseEvent</a>() - 当鼠标键被释放时被调用。当窗口部件已经接收相应的鼠标按下事件时,它接收鼠标释放事件。这也就是说如果用户在<em>你的</em>窗口部件内按下鼠标,然后拖着鼠标到其它某个地方,然后释放,<em>你的</em>窗口部件接收这个释放事件。这里有一个例外:如果出现在弹出菜单中,当鼠标键被按下时,这个弹出菜单立即会偷掉这个鼠标事件。
<p> <li> <a href="#mouseDoubleClickEvent">mouseDoubleClickEvent</a>() - 和它看起来也许不太一样。如果用户双击,窗口部件接收一个鼠标按下事件(如果他们没有拿牢鼠标,也许会出现一个或两个鼠标移动事件)、一个鼠标释放事件并且最终是这个事件。直到你看到第二次点击是否到来之前,<em>不能</em>从一个双击中辨别一个点击。(这是为什么绝大多数图形用户界面图书建议双击是单击的一个扩展,而不是一个不同行为的触发的一个原因。)
<p> </ul>
<p> 如果你的窗口部件仅仅包含子窗口部件,你也许不需要实现任何一个事件处理器。如果你想检测在子窗口部件中的鼠标点击,请在父窗口部件的<a href="#mousePressEvent">mousePressEvent</a>()中调用子窗口部件的<a href="#hasMouse">hasMouse</a>()函数。
<p> 接收键盘的窗口部件需要重新实现一些更多的事件处理器:
<p> <ul>
<p> <li> <a href="#keyPressEvent">keyPressEvent</a>() - 只要键被按下和当键已经被按下足够长的时间可以自动重复了就被调用。注意如果Tab和Shift+Tab键被用在焦点变换机制中,它们仅仅被传递给窗口部件。为了强迫那些键被你的窗口部件处理,你必须重新实现<a href="#event">QWidget::event</a>()。
<p> <li> <a href="#focusInEvent">focusInEvent</a>() - 当窗口部件获得键盘焦点(假设你已经调用<a href="#setFocusPolicy">setFocusPolicy</a>())时被调用。写得好的窗口部件意味着它们能按照一种清晰但谨慎的方式来获得键盘焦点。
<p> <li> <a href="#focusOutEvent">focusOutEvent</a>() - 当窗口部件失去键盘焦点时被调用。
<p> </ul>
<p> 一些窗口部件也许需要实现一些不太普通的事件处理器:
<p> <ul>
<p> <li> <a href="#mouseMoveEvent">mouseMoveEvent</a>() - 只要当鼠标键被按下时鼠标移动就会被调用。举例来说,对于拖动,这个很有用。如果你调用<a href="#setMouseTracking">setMouseTracking</a>(TRUE),尽管没有鼠标键被按下,你也会获得鼠标移动事件。(注意这个使用鼠标跟踪的应用程序在低下的X连接下不是很有用。)(也可以参考<a href="dnd.html">拖放</a>信息。)
<p> <li> <a href="#keyReleaseEvent">keyReleaseEvent</a>() - 只要键被释放和当如果这个键是自动重复的并且被按下一段时间时就被调用。在这种情况下窗口部件接收一个键释放事件并且对于每一个重复立即有一个键按下事件。注意如果Tab和Shift+Tab键被用在焦点变换机制中,它们仅仅被传递给窗口部件。为了强迫那些键被你的窗口部件处理,你必须重新实现<a href="#event">QWidget::event</a>()。
<p> <li> <a href="#wheelEvent">wheelEvent</a>() -- 当窗口部件拥有焦点时,只要用户转动鼠标滚轮就被调用。
<p> <li> <a href="#enterEvent">enterEvent</a>() - 当鼠标进入这个窗口部件屏幕空间时被调用。(这不包括被这个窗口部件的子窗口部件所拥有的屏幕空间。)
<p> <li> <a href="#leaveEvent">leaveEvent</a>() - 当鼠标离开这个窗口部件的屏幕空间时被调用。
<p> <li> <a href="#moveEvent">moveEvent</a>() - 当窗口部件相对于它的父窗口部件已经被移动时被调用。
<p> <li> <a href="#closeEvent">closeEvent</a>() - 当用户关闭窗口部件时(或这当<a href="#close">close</a>()被调用时)被调用。
<p> </ul>
<p> 这里还有一些不太明显的事件。它们在<a href="qevent-h.html">qevent.h</a>中被列出并且你需要重新实现<a href="#event">event</a>()来处理它们。event()的默认实现处理Tab和Shift+Tab(移动键盘焦点)并且其它绝大多数事件给上面提到的一个或更多的特定处理器。
<p> 当实现一个窗口部件时,还有一些更多的事情要考虑。
<p> <ul>
<p> <li> 在构造函数中,在你可能收到一个事件的任何机会之前,请确认尽早地设置你的成员变量。
<p> <li> 重新实现<a href="#sizeHint">sizeHint</a>()在绝大多数情况下都是很有用的并且使用<a href="#setSizePolicy">setSizePolicy</a>(),来设置正确的大小策略,这样你的同事可以更容易地设置布局管理器。一个大小策略可以让你为布局管理器提供好的默认情况,这样其它窗口部件可以很容易地包含和管理你的窗口部件。sizeHint()为这个窗口部件说明一个“好的”大小。
<p> <li> 如果你的窗口部件是一个顶级窗口部件,<a href="#setCaption">setCaption</a>()和<a href="#setIcon">setIcon</a>()分别设置标题栏和图标。
<p> </ul>
<p> <p>也可以参考<a href="qevent.html">QEvent</a>、<a href="qpainter.html">QPainter</a>、<a href="qgridlayout.html">QGridLayout</a>、<a href="qboxlayout.html">QBoxLayout</a>和<a href="abstractwidgets.html">抽象窗口部件类</a>。

<hr><h2>成员类型文档</h2>
<h3 class=fn><a name="BackgroundOrigin-enum"></a>QWidget::BackgroundOrigin</h3> 
<p> 这个枚举变量定义了用于绘制窗口部件背景像素映射的原点。
<p> 被绘制的像素映射使用:
<ul>
<li><tt>QWidget::WidgetOrigin</tt> - 窗口部件的坐标系统。
<li><tt>QWidget::ParentOrigin</tt> - 父窗口部件的坐标系统。
<li><tt>QWidget::WindowOrigin</tt> - 顶级窗口的坐标系统。
</ul>

<h3 class=fn><a name="FocusPolicy-enum"></a>QWidget::FocusPolicy</h3> 
<p> 这个枚举变量定义了一个窗口部件获得<a href="focus.html#keyboard-focus">键盘焦点</a>所依据的不同策略。
<p> <em>policy</em>可以是:
<ul>
<li><tt>QWidget::TabFocus</tt> - 窗口部件通过Tab获得焦点。
<li><tt>QWidget::ClickFocus</tt> - 窗口部件通过点击获得焦点。
<li><tt>QWidget::StrongFocus</tt> - 窗口部件通过Tab和点击获得焦点。
<li><tt>QWidget::WheelFocus</tt> - 像StrongFocus那样加上窗口部件通过使用鼠标滚轮获得焦点。
<li><tt>QWidget::NoFocus</tt> - 窗口部件不接收焦点。
</ul><p> 

<hr><h2>成员函数文档</h2>
<h3 class=fn><a name="QWidget"></a>QWidget::QWidget ( <a href="qwidget.html">QWidget</a>&nbsp;*&nbsp;parent = 0, const&nbsp;char&nbsp;*&nbsp;name = 0, WFlags&nbsp;f = 0 )

⌨️ 快捷键说明

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