继承QObject和QPaintDevice。
被QButton、QFrame、QDialog、QComboBox、QDataBrowser、QDataView、QDateTimeEdit、QDesktopWidget、QDial、QDockArea、QGLWidget、QHeader、QMainWindow、QNPWidget、QScrollBar、QSizeGrip、QSlider、QSpinBox、QStatusBar、QTabBar、QTabWidget、QWorkspace和QXtWidget继承。
所有成员函数的列表。
窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。
QDialog是最普通的顶级窗口。不被嵌入到一个父窗口部件的窗口部件被叫做顶级窗口部件。通常情况下,顶级窗口部件是有框架和标题栏的窗口(尽管如果使用了一定的窗口部件标记,创建顶级窗口部件时也可能没有这些装饰。)在Qt中,QMainWindow和和不同的QDialog的子类是最普通的顶级窗口。
一个没有父窗口部件的窗口部件一直是顶级窗口部件。
非顶级窗口部件是子窗口部件。它们是它们的父窗口部件中的子窗口。你通常不能在视觉角度从它们的父窗口部件中辨别一个子窗口部件。在Qt中的绝大多数其它窗口部件仅仅作为子窗口部件才是有用的。(当然把一个按钮作为或者叫做顶级窗口部件也是可能的,但绝大多数人喜欢把他们的按钮放到其它按钮当中,比如QDialog。)
QWidget有很多成员函数,但是它们中的一些有少量的直接功能:例如,QWidget有一个字体属性,但是它自己从来不用。有很多继承它的子类提供了实际的功能,比如QPushButton、QListBox和QTabDialog等等。
上下文 | 函数 |
---|---|
窗口函数 | show()、hide()、raise()、lower()、close()。 |
顶级窗口 | caption()、setCaption()、icon()、setIcon()、iconText()、setIconText()、isActiveWindow()、setActiveWindow()、showMinimized()、showMaximized()、showFullScreen()、showNormal()。 |
窗口内容 | update()、repaint()、erase()、scroll()、updateMask()。 |
几何形状 | pos()、size()、rect()、x()、y()、width()、height()、sizePolicy()、setSizePolicy()、sizeHint()、updateGeometry()、layout()、move()、resize()、setGeometry()、frameGeometry()、geometry()、childrenRect()、adjustSize()、mapFromGlobal()、mapFromParent()、mapToGlobal()、mapToParent()、maximumSize()、minimumSize()、sizeIncrement()、setMaximumSize()、setMinimumSize()、setSizeIncrement()、setBaseSize()、setFixedSize()。 |
模式 | isVisible()、isVisibleTo()、visibleRect()、isMinimized()、isDesktop()、isEnabled()、isEnabledTo()、isModal()、isPopup()、isTopLevel()、setEnabled()、hasMouseTracking()、setMouseTracking()、isUpdatesEnabled()、setUpdatesEnabled()。 |
观感 | style()、setStyle()、cursor()、setCursor()、font()、setFont()、palette()、setPalette()、backgroundMode()、setBackgroundMode()、colorGroup()、fontMetrics()、fontInfo()。 |
键盘焦点函数 | isFocusEnabled()、setFocusPolicy()、focusPolicy()、hasFocus()、setFocus()、clearFocus()、setTabOrder()、setFocusProxy()。 |
鼠标和键盘捕获 | grabMouse()、releaseMouse()、grabKeyboard()、releaseKeyboard()、mouseGrabber()、keyboardGrabber()。 |
事件处理器 | event()、mousePressEvent()、mouseReleaseEvent()、mouseDoubleClickEvent()、mouseMoveEvent()、keyPressEvent()、keyReleaseEvent()、focusInEvent()、focusOutEvent()、wheelEvent()、enterEvent()、leaveEvent()、paintEvent()、moveEvent()、resizeEvent()、closeEvent()、dragEnterEvent()、dragMoveEvent()、dragLeaveEvent()、dropEvent()、childEvent()、showEvent()、hideEvent()、customEvent()。 |
变化处理器 | enabledChange()、fontChange()、paletteChange()、styleChange()、windowActivationChange()。 |
系统函数 | parentWidget()、topLevelWidget()、reparent()、polish()、winId()、find()、metric()。 |
这是什么的帮助 | customWhatsThis()。 |
内部核心函数 | focusNextPrevChild()、wmapper()、clearWFlags()、getWFlags()、setWFlags()、testWFlags()。 |
每一个窗口部件构造函数接受两个或三个标准参数:
tictac/tictac.cpp实例程序是一个简单窗口部件的好实例。它包含了一些的事件处理器(就像所有窗口部件所必须的那样)、一些被指定给它的定制处理(就像所有有用的窗口部件做的那样)并且还有一些孩子和联机。它所做的每一件事都响应对应的一个事件:这是到目前为止设计图形用户界面的最普通的方式。
你自己将需要为你的窗口部件提供内容,但是这里是一些简要的运行事件,从最普通的开始:
如果你的窗口部件仅仅包含子窗口部件,你也许不需要实现任何一个事件处理器。如果你想检测在子窗口部件中的鼠标点击,请在父窗口部件的mousePressEvent()中调用子窗口部件的hasMouse()函数。
接收键盘的窗口部件需要重新实现一些更多的事件处理器:
一些窗口部件也许需要实现一些不太普通的事件处理器:
这里还有一些不太明显的事件。它们在qevent.h中被列出并且你需要重新实现event()来处理它们。event()的默认实现处理Tab和Shift+Tab(移动键盘焦点)并且其它绝大多数事件给上面提到的一个或更多的特定处理器。
当实现一个窗口部件时,还有一些更多的事情要考虑。
也可以参考QEvent、QPainter、QGridLayout、QBoxLayout和抽象窗口部件类。
这个枚举变量定义了用于绘制窗口部件背景像素映射的原点。
被绘制的像素映射使用:
这个枚举变量定义了一个窗口部件获得键盘焦点所依据的不同策略。
policy可以是:
如果parent为0,新的窗口部件变为顶级窗口。如果parent是另一个窗口部件,这个窗口部件变为parent中的一个子窗口。当它的parent被删除时,新的窗口部件被删除。
name被发送给QObject的构造函数。
窗口部件标记参数f通常为0,但它可以为顶级窗口部件设置自定义的窗口框架(比如,parent必须为0)。为了自定义框架,设置WStyle_Customize标记和任何一个Qt::WidgetFlags进行或运算。
如果你向一个已经可见的窗口部件中添加一个子窗口部件,你必须明显地显示这个孩子来使它可视。
注意Qt的X11版本也许不能在所有的系统上传递风格标记得所有组合。这是因为在X11上,Qt只能询问窗口管理器,并且窗口管理器会覆盖应用程序的设置。在Windows上,Qt可以是指你想要的任何标记。
实例:
QLabel *splashScreen = new QLabel( 0, "mySplashScreen", WStyle_Customize | WStyle_NoBorder | WStyle_Tool );
首先这个窗口部件的孩子都被删除。如果这个窗口部件是主窗口部件,应用程序退出。
如果对于这个窗口部件放下事件生效,返回真,否则返回假。详细情况请参考“acceptDrops”属性。
如果sizeHint()有效(比如,如果大小提示的宽和高都大于等于0)就是用它,否则设置大小为子对象所占用的矩形(所有子窗口部件几何形状的合集)。
也可以参考sizeHint和childrenRect。
实例:xform/xform.cpp。
在QMessageBox中被重新实现。
如果对于这个窗口部件自动面具特征生效,返回真,否则返回假。详细情况请参考“autoMask”属性。
返回这个窗口部件的背景画刷。详细情况请参考“backgroundBrush”属性。
作为替代请使用paletteBackgroundColor()或eraseColor()。
返回绘制窗口部件的背景所使用的颜色功能。详细情况请参考“backgroundMode”属性。
返回窗口部件的背景的原点。详细情况请参考“backgroundOrigin”属性。
作为替代请使用paletteBackgroundPixmap()或者erasePixmap()。
实例:themes/metal.cpp和themes/wood.cpp。
返回窗口部件的继承大小。详细情况请参考“baseSize”属性。
返回窗口标题。详细情况请参考“caption”属性。
如果includeThis为真,并且在(x, y)没有可视的孩子,那么这个窗口部件本身被返回。
返回在窗口部件自己的坐标系统中点p处的可视的子窗口部件。
如果includeThis为真,并且在p没有可视的孩子,那么这个窗口部件本身被返回。
返回这个窗口部件的孩子的边界矩形。详细情况请参考“childrenRect”属性。
返回这个窗口部件的孩子所占用的组合区域。详细情况请参考“childrenRegion”属性。
如果这个窗口部件有激活的焦点,焦点移出事件被发送给这个窗口部件告诉它关于它失去了焦点。
这个窗口部件必须已经为了获得键盘输入焦点使焦点设置生效,比如,它必须调用setFocusPolicy()。
也可以参考focus、setFocus()、focusInEvent()、focusOutEvent()、focusPolicy和QApplication::focusWidget()。
也可以参考setMask()。
清空窗口部件标记f。
窗口部件标记是Qt::WidgetFlags的组合。
也可以参考testWFlags()、getWFlags()和setWFlags()。
关闭这个窗口部件。如果窗口部件被关闭,返回真,否则返回假。
首先它发送给这个窗口部件一个QCloseEvent。如果它接收这个关闭事件,它就被隐藏了。QWidget::closeEvent()的默认实现是接收这个关闭事件。
当最后一个可视的顶级窗口部件被关闭,QApplication::lastWindowClosed()信号被发射。
实例:mdi/application.cpp和popup/popup.cpp。
关闭这个窗口部件。如果窗口部件被关闭,返回真,否则返回假。
如果alsoDelete为真或者这个窗口部件有WDestructiveClose窗口部件标记,这个窗口部件也被删除。这个窗口部件自己可以通过抵制它所收到的QCloseEvent来防止被关闭。
当最后一个可视的顶级窗口部件被关闭,QApplication::lastWindowClosed()信号被发射。
注意关闭QApplication::mainWidget()会终止应用程序。
也可以参考closeEvent()、QCloseEvent、hide()、QApplication::quit()、QApplication::setMainWidget()和QApplication::lastWindowClosed()。
默认实现是调用e->accept(),它隐藏这个窗口部件。详细情况请参考QCloseEvent文档。
也可以参考event()、hide(), close()和QCloseEvent。
实例:action/application.cpp、application/application.cpp、i18n/mywidget.cpp、popup/popup.cpp和qwerty/qwerty.cpp。
返回这个窗口部件调色板的当前颜色组。详细情况请参考“colorGroup”属性。
确认这个窗口部件通过调用polish()被适当地初始化了。
从像sizeHint()这样依赖于这个窗口部件被初始化的函数中调用constPolish(),并且也可以在show()之前被调用。
警告:不要在窗口部件的构造函数中调用constPolish()。
也可以参考polish()。
默认实现是调用e->accept(),它拒绝这个上下文事件。详细情况请参考QContextMenuEvent文档。
也可以参考event()和QContextMenuEvent。
如果initializeWindow为真,初始化窗口(设置几何形状等等)。如果initializeWindow为假,没有初始化被执行。这个参数只有在window是有效窗口时才有效。
如果destroyOldWindow为真,销毁就的窗口。如果destroyOldWindow为假,你有责任自己销毁这个窗口(使用平台本地代码)。
QWidget构造函数调用create(0,TRUE,TRUE)来为这个窗口部件创建窗口。
返回这个窗口部件的光标外形。详细情况请参考“cursor”属性。
如果这个窗口部件想手工地处理这是什么的帮助,返回真,否则返回假。详细情况请参考“customWhatsThis”属性。
对于所有的子窗口部件,destroy()循环地调用自己,传递给destroySubWindows一个destroyWindow参数。为了对子窗口部件地销毁进行控制,首先有选择地销毁子窗口部件。
这个函数通常被QWidget析构函数调用。
对于在你的应用程序中如何提供拖放的概述请参考拖放文档。
也可以参考QTextDrag、QImageDrag和QDragEnterEvent。
实例:iconview/simple_dd/main.cpp。
对于在你的应用程序中如何提供拖放的概述请参考拖放文档。
也可以参考QTextDrag、QImageDrag和QDragLeaveEvent。
对于在你的应用程序中如何提供拖放的概述请参考拖放文档。
也可以参考QTextDrag、QImageDrag和QDragMoveEvent。
y位置是文本的基线位置。使用默认字体和默认前景色绘制文本。
这个函数的提供是为了方便。你使用painter替代它一般将会获得更灵活的结果和更快的速度。
也可以参考font、foregroundColor()和QPainter::drawText()。
在位置pos绘制字符串str。
对于在你的应用程序中如何提供拖放的概述请参考拖放文档。
也可以参考QTextDrag、QImageDrag和QDropEvent。
实例:iconview/simple_dd/main.cpp。
isEnabled(). 这个虚函数被setEnabled()调用。oldEnabled是以前的设置,你可以从isEnabled()中得到新的设置。
如果你的窗口部件需要知道什么时候它变为有效或无效,请重新实现这个函数。你将几乎必然要使用update()来更新这个窗口部件。
默认实现是重新绘制窗口部件的可见部分。
也可以参考enabled、enabled、repaint()、update()和visibleRect。
当鼠标光标进入窗口部件,这个事件被发送给窗口部件。
也可以参考leaveEvent()、mouseMoveEvent()和event()。
如果w为负数,它被width()-x替换。如果h为负数,它被height()-y替换。
子窗口部件不被影响。
也可以参考repaint()。
这个版本擦除整个窗口部件。
在窗口部件中擦除指定区域r,并不产生绘制事件。
在窗口部件中擦除reg定义的区域,并不产生绘制事件。
子窗口部件不被影响。
返回这个窗口部件的擦除色。
也可以参考setEraseColor()、setErasePixmap()和backgroundColor()。
也可以参考setErasePixmap()和eraseColor()。
主事件首先把事件传递给所有已经被安装的事件过滤器。如果没有过滤器中途截取这个事件,它调用一个特定的事件处理器。
键按下和释放事件被处理得和其它事件不同。event()检查Tab和Shift+Tab并且试图适当地移动焦点。如果没有窗口部件被焦点移入(或者键按下不是Tab或Shift+Tab),event()调用keyPressEvent()。
如果它能够把一个事件传递给没个东西,这个函数就返回真,否则如果没有任何东西想要这个事件,返回假。
也可以参考closeEvent()、focusInEvent()、focusOutEvent()、enterEvent()、keyPressEvent()、keyReleaseEvent()、leaveEvent()、mouseDoubleClickEvent()、mouseMoveEvent()、mousePressEvent()、 mouseReleaseEvent()、moveEvent()、paintEvent()、resizeEvent()、QObject::event()和QObject::timerEvent()。
从QObject中被重新实现。
窗口标识符类型依赖于底下的窗口系统,实际定义请参考qwindowdefs.h。如果没有具有这样的标识符的窗口部件,0被返回。
焦点数据总是属于顶级窗口部件。焦点数据列表包含这个可以接收焦点的顶级窗口部件中所有的窗口部件,按Tab顺序。一个迭代器指向当前焦点窗口部件(focusWidget()返回这个窗口部件的指针)。
这个信息对于重新实现更先进版本的focusNextPrevChild()很有用。
一个窗口部件通常必须使用setFocusPolicy()来接收焦点事件,除了NoFocus的。(注意应用程序的程序员可以在任何一个窗口部件中调用setFocus(),即使是那些通常不接收焦点的。)
如果它接收了焦点,默认实现是更新这个窗口部件(请参考focusPolicy())。它也调用setMicroFocusHint(),提示任何系统指定的输入工具关于用户注意的焦点。
也可以参考focusOutEvent(), focusPolicy、keyPressEvent()、keyReleaseEvent()、event()和QFocusEvent。
在QtMultiLineEdit中被重新实现。
如果next为真,这个函数就“向前”搜索,如果next为假,它就“向后”搜索。
有时,你想重新实现这个函数。例如,一个网页浏览器也许会重新实现它用来向前或向后移动“当前激活链接”,并且只有到达“页面”的最后一个或第一个链接时调用QWidget::focusNextPrevChild()。
子窗口部件在它们的父窗口部件上调用focusNextPrevChild(),但是只有顶级窗口部件可以重定向焦点。通过重载一个对象中的这个方法,你可以获得能够遍历所有子窗口部件的焦点控制。
也可以参考focusData()。
一个窗口部件通常必须使用setFocusPolicy()来接收焦点事件,除了NoFocus的。(注意应用程序的程序员可以在任何一个窗口部件中调用setFocus(),即使是那些通常不接收焦点的。)
默认实现是调用repaint(),因为窗口部件的colorGroup()从激活变为通常,所以这个窗口部件也许需要重新绘制。它也调用setMicroFocusHint(),提示任何系统指定的输入工具关于用户注意的焦点。
也可以参考focusInEvent()、focusPolicy、keyPressEvent()、keyReleaseEvent()、event()和QFocusEvent.
实例:qmag/qmag.cpp。
返回窗口部件接收键盘焦点的方式。详细情况请参考“focusPolicy”属性。
也可以参考setFocusProxy()。
返回这个窗口部件的字体当前设置。详细情况请参考“font”属性。
这个虚函数是从setFont()中被调用的。oldFont是以前的字体,你可以通过font()获得新的字体。
如果你的窗口部件需要直到什么时候它的字体改变了,就重新实现这个函数。你将几乎毫无疑问的需要使用update()更新这个窗口部件。
默认实现是更新包括它的几何形状的窗口部件。
也可以参考font、font、update()和updateGeometry()。
返回这个窗口部件当前字体的字体信息。等于QFontInto(widget->font())。
也可以参考font、fontMetrics()和font。
返回这个窗口部件的当前字体的字体规格。等于 QFontMetrics(widget->font())。
也可以参考font、fontInfo()和font。
实例:drawdemo/drawdemo.cpp和qmag/qmag.cpp。
返回相对于它的父对象包含任何窗口框架的窗口部件的几何形状。详细情况请参考“frameGeometry”属性。
返回包含任何窗口框架的窗口部件的大小。详细情况请参考“frameSize”属性。
返回相对于它的父对象不包括窗口框架的窗口部件的几何形状。详细情况请参考“geometry”属性。
返回这个窗口部件的窗口部件标记。
窗口部件就是Qt::WidgetFlags的一个组合。
也可以参考testWFlags(), setWFlags()和clearWFlags()。
这个窗口部件接收所有的键盘事件并且其它窗口部件将不会得到直到releaseKeyboard()被调用。鼠标事件不受影响。如果你想捕获鼠标事件,请使用grabMouse()。
焦点窗口部件不受影响,除非它不接收任何键盘事件。setFocus()像平常那样移动焦点,但是只有在releaseKeyboard()被调用之后,新的焦点窗口部件才能接收键盘事件。
如果一个不同的窗口部件当前正在捕获键盘焦点,那么那个窗口部件的捕获首先被释放。
也可以参考releaseKeyboard()、grabMouse()、releaseMouse()和focusWidget()。
这个窗口部件接收所有的鼠标事件并且其它窗口部件将不会得到直到releaseMouse()被调用。键盘事件不受影响。如果你想捕获键盘事件,请使用grabKeyboard()。
警告:捕获鼠标的应用程序的bug经常会锁定终端。请特别仔细地使用这个函数,并且在调试的时候考虑使用-nograb命令行参数。
在使用Qt的时候,几乎不需要捕获鼠标,因为Qt非常聪明地捕获它、释放它。在特殊情况下,当鼠标按键被按下并且保持这种状态直到最后一个按键被释放时,Qt捕获鼠标。
注意只有可视的窗口部件可以捕获鼠标输入。如果一个窗口部件的isVisible()返回假,这个窗口部件不能调用grabMouse()。
也可以参考releaseMouse()、grabKeyboard()、releaseKeyboard()、grabKeyboard()和focusWidget()。
捕获鼠标输入并且改变光标形状。
光标将被赋值为形状cursor(只要在鼠标焦点被捕获)并且这个窗口部件将变为唯一接收鼠标事件的窗口部件直到releaseMouse()被调用。
警告:不过鼠标也许会锁定终端。
也可以参考releaseMouse()、grabKeyboard()、releaseKeyboard()和cursor。
如果这个窗口部件(或者它的焦点代理)拥有键盘输入焦点,返回真,否则返回假。详细情况请参考“focus”属性。
如果窗口部件在鼠标光标之下,返回真,否则返回假。详细情况请参考“underMouse”属性。
如果这个窗口部件中鼠标跟踪生效,返回真,否则返回假。详细情况请参考“mouseTracking”属性。
返回不包括窗口框架的窗口部件的高度。详细情况请参考“height”属性。
警告:不要考虑窗口部件的布局。
在QMenuBar和QTextEdit中被重新实现。
你几乎不需要重新实现这个函数。如果你需要在一个窗口部件被隐藏之后做些什么,请使用hideEvent()替代。
也可以参考hideEvent()、hidden、show()、showMinimized()、visible和close()。
实例:mdi/application.cpp、network/ftpclient/ftpmainwindow.cpp、popup/popup.cpp、 progress/progress.cpp、scrollview/scrollview.cpp和xform/xform.cpp。
在QMenuBar中被重新实现。
在窗口部件被隐藏之后,隐藏事件被立即发送给窗口部件。
也可以参考event()和QHideEvent。
在QScrollBar中被重新实现。
返回窗口部件图标像素映射。详细情况请参考“icon”属性。
返回窗口部件图标文本。详细情况请参考“iconText”属性。
默认实现是调用e->ignore(),它拒绝输入法事件。详细情况请参考QIMEvent文档。
也可以参考event()和QIMEvent。
默认实现是调用e->ignore(),它拒绝输入法事件。详细情况请参考QIMEvent文档。
也可以参考event()和QIMEvent。
默认实现是调用e->ignore(),它拒绝输入法事件。详细情况请参考QIMEvent文档。
也可以参考event()和QIMEvent。
如果这个窗口部件是激活窗口或者它的一个孩子,返回真,否则返回假。详细情况请参考“isActiveWindow”属性。
如果这个窗口部件是一个桌面窗口部件,比如,它代表着桌面,返回真,否则返回假。详细情况请参考“isDesktop”属性。
如果这个窗口部件是一个对话框窗口部件,返回真,否则返回假。详细情况请参考“isDialog”属性。
如果这个窗口部件是生效的,返回真,否则返回假。详细情况请参考“enabled”属性。
如果这个窗口部件自身或者它的每一个祖先,但是除了ancestor以外,已经被明确地指定为失效的时候,才是这样的情况。
isEnabledTo(0)等于isEnabled()。
也可以参考enabled和enabled。
这个函数是被反对的。它等于isEnabled()。
如果这个窗口部件接收键盘焦点,返回真,否则返回假。详细情况请参考“focusEnabled”属性。
如果这个窗口部件被明确地隐藏,返回真,否则返回假。详细情况请参考“hidden”属性。
如果窗口部件是被最大化的顶级窗口部件,返回真,否则返回假。
注意因为一些窗口系统的一些限制,这样做并不是总能得到所期望的结果(比如,如果在X11上的用户通过窗口管理器最大化这个窗口,Qt并不能把它与其它重定义大小区分开)。这有待于窗口管理器协议的进一步改进。
也可以参考showMaximized()。
如果这个窗口部件最小化(变为图标了),返回真,否则返回假。详细情况请参考“minimized”属性。
如果这个窗口部件是模式窗口部件,返回真,否则返回假。详细情况请参考“isModal”属性。
如果这个窗口部件是弹出窗口部件,返回真,否则返回假。详细情况请参考“isPopup”属性。
如果这个窗口部件是顶级窗口部件,返回真,否则返回假。详细情况请参考“isTopLevel”属性。
如果更新是生效的,返回真,否则返回假。详细情况请参考“updatesEnabled”属性。
如果这个窗口部件是可视的,返回真,否则返回假。详细情况请参考“visible”属性。
如果这个窗口部件自身或者它的每一个祖先,但是除了ancestor以外,已经被明确地指定为隐藏的时候,才是这样的情况。
如果这个窗口部件被屏幕上其它窗口弄得变暗,这个函数仍会返回真,但是如果它或者它们被移动了,它将被变为物理可视的。
isVisibleTo(0)和isVisible()很相似,除了它变为图标的情况或者这个窗口存在与其它虚拟桌面的情况。
也可以参考show()、hide()和visible。
这个函数是被反对的。它等于isVisible()。
窗口部件最初必须调用setFocusPolicy()来接收焦点并且得到焦点用来接收键盘释放事件。
如果你重新实现这个处理器,如果你不能理解这个事件,你就忽略(ignore())这个事件,这是很重要的,这样这个窗口部件的父对象就可以说明它。
默认实现是如果用户按下Esc就关闭弹出窗口部件。否则这个事件就被忽略。
也可以参考keyReleaseEvent()、QKeyEvent::ignore()、focusPolicy, focusInEvent()、focusOutEvent()、event()和QKeyEvent。
实例:picture/picture.cpp。
在QLineEdit、QTextEdit和QtMultiLineEdit中被重新实现。
窗口部件最初必须调用setFocusPolicy()来接收焦点并且得到焦点用来接收键盘释放事件。
如果你重新实现这个处理器,如果你不能理解这个事件,你就忽略(ignore())这个事件,这是很重要的,这样这个窗口部件的父对象就可以说明它。
默认实现就是忽略这个事件。
也可以参考keyPressEvent()、QKeyEvent::ignore()、focusPolicy、focusInEvent()、focusOutEvent()、event()和QKeyEvent。
如果在这个应用程序中当前没有正在捕获键盘的窗口部件,0被返回。
也可以参考grabMouse()和mouseGrabber()。
返回管理窗口部件孩子的几何形状的布局引擎的指针。
如果这个窗口部件没有布局,layout()返回一个零指针。
也可以参考sizePolicy。
实例:chart/optionsform.cpp和fonts/simple-qfont-demo/viewer.cpp。
当鼠标光标离开这个窗口部件时,离开事件被发送给这个窗口部件。
也可以参考enterEvent()、mouseMoveEvent()和event()。
如果在屏幕上有与这个窗口部件重叠的兄弟,这个窗口部件将被它后来的这些兄弟变暗。
也可以参考raise()和stackUnder()。
在你重新实现的这个函数中,如果你想停止Qt对这个事件的处理,返回真。如果你返回假,这个本地事件被回传给Qt,它会把这个事件转换为一个Qt事件并且把它发送给这个窗口部件。
警告:这个函数是不可以移植的。
也可以参考QApplication::macEventFilter()。
也可以参考mapTo()、mapFromParent()、mapFromGlobal()和underMouse。
也可以参考mapToGlobal()、mapFrom()和mapFromParent()。
如果窗口部件没有父对象,就和mapFromGlobal()一样。
也可以参考mapToParent()、mapFrom()、mapFromGlobal()和underMouse。
也可以参考mapFrom()、mapToParent()、mapToGlobal()和underMouse。
mapToGlobal(QPoint(0,0))
将会给出这个窗口部件的左上角像素的全局坐标。
也可以参考mapFromGlobal()、mapTo()和mapToParent()。
实例:scribble/scribble.cpp。
如果窗口部件没有父对象,就和mapToGlobal()一样。
也可以参考mapFromParent()、mapTo()、mapToGlobal()和underMouse。
返回这个窗口部件的最大高度。详细情况请参考“maximumHeight”属性。
返回这个窗口部件的最大大小。详细情况请参考“maximumSize”属性。
返回这个窗口部件的最大宽度。详细情况请参考“maximumWidth”属性。
使用QPaintDeviceMetrics来替代它。
m是要获得的规格。
返回这个窗口部件的当前设置的微焦点提示的当前设置。详细情况请参考“microFocusHint”属性。
返回这个窗口部件的最小高度。详细情况请参考“minimumHeight”属性。
返回这个窗口部件的最小大小。详细情况请参考“minimumSize”属性。
返回这个窗口部件的建议最小大小。详细情况请参考“minimumSizeHint”属性。
在QLineEdit和QtMultiLineEdit中被重新实现。
返回这个窗口部件的最小宽度。详细情况请参考“minimumWidth”属性。
默认实现产生一个普通的鼠标点击事件。
注意在窗口部件得到mouseDoubleClickEvent()之前,它得到一个mousePressEvent()和一个mouseReleaseEvent()。
也可以参考mousePressEvent()、mouseReleaseEvent()、 mouseMoveEvent()、event()和QMouseEvent。
如果这个应用程序中当前没有捕获鼠标的窗口部件,0被返回。
也可以参考grabMouse()和keyboardGrabber()。
如果鼠标跟踪被切换为关闭,只有在鼠标被按下后移动的情况下,才会发生鼠标移动事件。如果鼠标跟踪被切换为开,即使鼠标没有被按下,只要移动就会发生鼠标移动事件。
QMouseEvent::pos()报告鼠标光标相对于这个窗口部件的位置。对于按下和释放事件,这个位置通常和最后一次鼠标移动事件的位置相同,但是如果鼠标非常快地移动和按下,这也许是不同的。这依赖于底层的窗口系统,而不是Qt。
也可以参考mouseTracking、mousePressEvent()、 mouseReleaseEvent()、mouseDoubleClickEvent()、event()和QMouseEvent。
实例:aclock/aclock.cpp、drawlines/connect.cpp、iconview/simple_dd/main.cpp、life/life.cpp、popup/popup.cpp、qmag/qmag.cpp和scribble/scribble.cpp。
在QSizeGrip中被重新实现。
如果你在mousePressEvent()中创建新的窗口部件,mouseReleaseEvent()也许不会像你所期待的那样结束,这依赖于底层的窗口系统(或X11窗口管理器)、这个窗口部件的位置并且也许更多。
当你再窗口外点击时,默认实现是关闭弹出窗口。对于其它窗口部件类型,它什么都不做。
也可以参考mouseReleaseEvent()、mouseDoubleClickEvent()、mouseMoveEvent()、event()和QMouseEvent。
实例:biff/biff.cpp、drawlines/connect.cpp、iconview/simple_dd/main.cpp, life/life.cpp, qmag/qmag.cpp、scribble/scribble.cpp和tooltip/tooltip.cpp。
在QSizeGrip中被重新实现。
也可以参考mouseDoubleClickEvent()、mouseMoveEvent()、event()和QMouseEvent。
实例:drawlines/connect.cpp、hello/hello.cpp、popup/popup.cpp、qmag/qmag.cpp、scribble/scribble.cpp、showimg/showimg.cpp和t14/cannon.cpp。
设置窗口部件在它的父窗口部件中的位置。详细情况请参考“pos”属性。
这个和move( QSize(x, y) )一致。
旧的位置可以通过QMoveEvent::oldPos()来访问。
也可以参考resizeEvent()、event()、pos和QMoveEvent。
如果这个窗口部件使用它自己的光标,返回真,否则返回假。详细情况请参考“ownCursor”属性。
如果这个窗口部件使用它自己的字体,返回真,否则返回假。详细情况请参考“ownFont”属性。
如果这个窗口部件使用它自己的调色板,返回真,否则返回假。详细情况请参考“ownPalette”属性。
绘制事件就是重新绘制这个窗口部件的所有部分的一个请求。它可以是repaint()或update()的结果,或者因为这个窗口部件原来被变暗并且现在已经不再被覆盖了,或者其它很多原因。
很多窗口部件在当它们被请求时,它们很简单地重新绘制整个界面,但是一些比较慢的窗口部件需要通过仅仅绘制被请求的区域QPaintEvent::region()进行优化。这个速度优化不会改变结果,在事件处理过程中,绘制仅仅发生在被改变的区域中。例如,QListView和QCanvas就是这样做的。
Qt也试图通过把多个绘制事件合并为一个来加快绘制速度。当update()被调用几次或者窗口系统发送几次绘制事件,Qt把它们合并为一个比较大区域(请参考QRegion::unite())的一个事件中。repaint()不允许这样优化,所以只要可能我们建议使用update()。
当绘制事件发生,更新区域通常被擦除,所以你正在这个窗口部件的背景上绘制。这里有一些例外并且QPaintEvent::erased()告诉你这个窗口部件是否被擦除。
背景可以通过使用setBackgroundMode()、setPaletteBackgroundColor()或setBackgroundPixmap()来设置。setBackgroundMode()的文档详细描述了背景,我们建议你去读一下。
也可以参考event()、repaint()、update()、QPainter、QPixmap和QPaintEvent。
实例:drawdemo/drawdemo.cpp、drawlines/connect.cpp、qmag/qmag.cpp、scribble/scribble.cpp、splitter/splitter.cpp、t8/cannon.cpp和t9/cannon.cpp。
在QButton、QFrame、QGLWidget、QSizeGrip、QStatusBar和QTabBar中被重新实现。
返回这个窗口部件的调色板。详细情况请参考“palette”属性。
返回这个窗口部件的背景色。详细情况请参考“paletteBackgroundColor”属性。
返回这个窗口部件的背景像素映射。详细情况请参考“paletteBackgroundPixmap”属性。
这个虚函数是从setPalette()中被调用的。oldPalette是原来的调色板,你可以通过palette()得到新的调色板。
如果你的窗口部件需要知道什么时候调色板发生变化了,请重新实现这个函数。
也可以参考palette和palette。
返回这个窗口部件的前景色。详细情况请参考“paletteForegroundColor”属性。
返回这个窗口部件的父窗口部件的指针,如果它没有,就返回零指针。如果sameWindow为真并且这个窗口部件是顶级的,就返回0,否则返回它的父窗口部件。
实例:mdi/application.cpp。
这个函数将在窗口部件完全创建完毕之后并且在它每一次被显示之前被调用。
抛光对于依赖一个特定窗口部件的最终初始化是很有用的。有一些事情构造函数不能够决定,因为子类的初始化也许没有完成。
在这个函数之后,窗口部件就有一个适当的字体和调色板并且QApplication::polish()已经被调用。
当重新实现这个函数的时候,记得调用QWidget的实现。
也可以参考constPolish()和QApplication::polish()。
实例:menu/menu.cpp。
返回这个窗口部件在它父窗口部件中的位置。详细情况请参考“pos”属性。
在你重新实现的这个函数中,如果你想停止Qt对这个事件的处理,返回真。如果你返回假,这个本地事件被回传给Qt,它会把这个事件转换为一个Qt事件并且把它发送给这个窗口部件。
警告:这个函数是不可以移植的。
也可以参考QApplication::qwsEventFilter()。
如果在屏幕上有与这个窗口部件重叠的兄弟,这个窗口部件将在它后来的这些兄弟之前变的可视了。
也可以参考lower()和stackUnder()。
实例:showimg/showimg.cpp。
这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。
这个函数的提供是为了从Qt 1.0移植到2.0。在Qt 2.0中它已经被重新命名为reparent()。
返回不包含任何窗口框架的窗口部件的内部几何形状。详细情况请参考“rect”属性。
也可以参考grabKeyboard()、grabMouse()和releaseMouse()。
也可以参考grabMouse()、grabKeyboard()和releaseKeyboard()。
如果erase为真,Qt在paintEvent()调用之前擦除区域(x,y,w,h)。
如果w是负数,它被width()-x
替换,并且如果h是负数,它被height()-y
替换。
如果你需要立即重新绘制,我们建议使用repaint(),比如在动画期间。在绝大多数情况下,update()更好,因为它允许Qt来优化速度并且防止闪烁。
警告:如果你在一个函数中调用repaint(),而它自己又被paintEvent()调用,你也许会看到无线循环。update()函数从来不会产生循环。
也可以参考update()、paintEvent()、updatesEnabled和erase()。
实例:qwerty/qwerty.cpp。
这个版本擦除并且重新绘制整个窗口部件。
这个版本重新绘制整个窗口部件。
通过立即调用paintEvent()来直接重新绘制窗口部件,除非更新是失效的或者窗口部件被隐藏。
如果erase为真,擦除窗口部件区域r。
通过立即调用paintEvent()来直接重新绘制窗口部件,除非更新是失效的或者窗口部件被隐藏。
如果erase为真,擦除窗口部件区域reg。
如果你需要立即重新绘制,我们建议使用repaint(),比如在动画期间。一连串的多次调用update()将产生一个单一的绘制事件。
警告:如果你在一个函数中调用repaint(),而它自己又被paintEvent()调用,你也许会看到无线循环。update()函数从来不会产生循环。
也可以参考update()、paintEvent()、updatesEnabled和erase()。
如果showIt为真,一旦窗口部件被重新定义父对象,show()就被调用。
如果新的父窗口部件在一个不同的顶级窗口部件中,被重新定义父对象的窗口部件和它的孩子们将被添加到新窗口部件的tab链的最后。如果被移动的窗口部件之一拥有键盘焦点,reparent()为这个窗口部件调用clearFocus()。
如果新的父窗口部件和原来的父对象在同一个顶级窗口部件中,reparent()不会改变tab顺序或者键盘焦点。
警告:你对这个函数的需要是绝对不必要的。如果你有一个窗口部件动态的改变它的内容,使用QWidgetStack或QWizard会更容易的多。
也可以参考getWFlags()。
一个方便的重新定义这个窗口部件的父对象的版本没有把窗口部件标记作为参数。
调用reparent(parent, getWFlags() & ~WType_Mask, p, showIt)。
设置不包含任何窗口框架的窗口部件的大小。详细情况请参考“size”属性。
这个和resize( QSize(w, h) )一致。
这个窗口部件竟被擦除并且在处理重定义大小事件之后立即接收到一个绘制事件。在这个处理器中不需要(或者必须)绘制。
由WResizeNoErase创建的窗口部件将不会被擦除。不过,它们也将收到一个对于整个区域的绘制事件。再一次的,在这个处理器中不需要(或者必须)绘制。
如果窗口部件的自动面具生效,默认实现调用updateMask()。
也可以参考moveEvent()、event()、size、QResizeEvent和paintEvent()。
实例:drawdemo/drawdemo.cpp、mainlyQt/editor.cpp、mainlyXt/editor.cpp 、menu/menu.cpp、qmag/qmag.cpp、scribble/scribble.cpp和tooltip/tooltip.cpp。
在QFrame和QGLWidget中被重新实现。
在卷动后,scroll()发送绘制事件,只为了读的部分,但不写。例如,当向右卷动10像素,窗口部件的最左面10像素需要重新绘制。绘制事件也许立即或者稍后被交付,依赖于一些启发式。
也可以参考QScrollView、erase()和bitBlt()。
这个版本仅卷动r并且不移动窗口部件的孩子。
如果r为空或者无效,结果是未定义的。
也可以参考QScrollView、erase()和bitBlt()。
设置对于这个窗口部件放下事件是否生效为on。详细情况请参考“acceptDrops”属性。
激活窗口就是拥有键盘输入焦点的可视的顶级窗口。
这个函数执行的操作和在一个顶级窗口的标题栏点击鼠标是一样的。在X11上,结果依赖于窗口管理器。如果你想确认窗口也被堆在顶部,请另外调用raise()。注意这个窗口已经被变为可视,除非setActiveWindow()没有效果。
在Windows上,如果当应用程序不是当前激活的应用程序,如果你调用这个函数,然后它不会使它变为激活窗口。它将会在标题栏条目上闪烁蓝色标明这个窗口已经做了些什么。这是由于Microsoft不允许一个应用程序打断用户当前在另一个应用程序上所做的事情。
也可以参考isActiveWindow、topLevelWidget()和show()。
在QXtWidget中被重新实现。
设置这个窗口部件自动面具特征是否生效。详细情况请参考“autoMask”属性。
实例:customlayout/main.cpp、desktop/desktop.cpp、hello/main.cpp、movies/main.cpp和splitter/splitter.cpp。
设置绘制窗口部件背景所使用的颜色模式。详细情况请参考“backgroundMode”属性。
设置这个窗口部件自己的背景模式为m并且可视背景模式为visual。可视背景模式和可设计的属性backgroundColor、foregroundColor和backgroundPixmap一起使用。
对于复杂的控制,合理的背景模式有时和窗口部件自己的背景模式不同。例如,微调框把PaletteBackground作为背景模式(通常是暗灰色),当它被嵌入到行编辑控件中使用PaletteBase(通常是白色)。因为行编辑控件覆盖微调框的绝大部分可视区域,它定义了PaletteBase为它的可视背景模式。改变backgroundColor属性会改变行编辑控件的背景,这正是用户在Qt设计器中所期待的。
设置这个窗口部件背景的原点。详细情况请参考“backgroundOrigin”属性。
实例:desktop/desktop.cpp。
设置这个窗口部件的基础大小。详细情况请参考“baseSize”属性。
这个和setBaseSize( QSize(basew, baseh) )一致。设置窗口部件基础大小的宽为basew,高为baseh。
设置窗口标题。详细情况请参考“caption”属性。
设置这个窗口部件的光标形状。详细情况请参考“cursor”属性。
更多信息请参考enabled文档。
也可以参考isEnabledTo()、QKeyEvent、QMouseEvent和enabledChange()。
设置这个窗口部件是否生效。详细情况请参考“enabled”属性。
擦除颜色就是在paintEvent()被调用之前这个窗口部件被清空的颜色。如果有擦除像素映射(使用setErasePixmap()设置),然后这个属性就会有不确定的值。
也可以参考erasePixmap()、backgroundColor()、backgroundMode和palette。
这个像素映射就是在paintEvent()被调用之前用来清空这个窗口部件的。
也可以参考sizeHint、minimumSize、maximumSize和setFixedSize()。
实例:fonts/simple-qfont-demo/viewer.cpp、layout/layout.cpp、qdir/qdir.cpp和showimg/showimg.cpp。
也可以参考maximumSize和minimumSize。
设置窗口部件的宽度为w,高度为h。
也可以参考sizeHint、minimumSize、maximumSize和setFixedSize()。
实例:network/ftpclient/ftpmainwindow.cpp、progressbar/progressbar.cpp和qdir/qdir.cpp。
首先,一个焦点移出事件会被发送给焦点窗口部件(如果有的话)告诉它关于失去焦点的事情。然后一个焦点进入事件被发送给这个窗口部件告诉它刚刚接收到焦点。(如果焦点移出和进入的窗口部件是同一个的话,就什么都没有发生。)
setFocus()会把焦点给一个窗口部件,而不管它的焦点策略,但是不会清空任何键盘捕获(请参考grabKeyboard())。
请注意如果窗口部件是被隐藏的,它将不接收焦点。
警告:如果你在一个函数中调用setFocus(),而这个函数自己被focusOutEvent()或focusInEvent()调用,你也许会体验到无限循环。
也可以参考focus、clearFocus()、focusInEvent()、focusOutEvent()、focusPolicy、QApplication::focusWidget()、grabKeyboard()和grabMouse()。
实例:addressbook/centralwidget.cpp、lineedits/lineedits.cpp、mdi/application.cpp、popup/popup.cpp、rot13/rot13.cpp、t8/main.cpp和wizard/wizard.cpp。
设置这个窗口部件接收键盘焦点的方式。详细情况请参考“focusPolicy”属性。
一些窗口部件,比如QComboBox,能够“拥有焦点”,但创建一个子窗口部件来实际处理这个焦点。例如,QComboBox创建了一个QLineEdit来处理焦点。
当“这个窗口部件”获得焦点时,setFocusProxy()设置这个窗口部件实际获得焦点。如果有了一个焦点代理,focusPolicy()、setFocusPolicy()、setFocus()和hasFocus()都在这个焦点代理上操作。
也可以参考focusProxy()。
设置这个窗口部件的字体当前设置。详细情况请参考“font”属性。
在QComboBox、QLabel和QTabDialog中被重新实现。
使用setFont(const QFont& font)替代它。
设置相对于它的父对象不包括窗口框架的窗口部件的几何形状。详细情况请参考“geometry”属性。
这相当于setGeometry( QRect(x, y, w, h) )。
设置这个窗口部件图标像素映射。详细情况请参考“icon”属性。
设置这个窗口部件图标文本。详细情况请参考“iconText”属性。
默认情况下,键盘压缩是关闭的,所以窗口部件对于每一个键盘按下(或者更多,因为自动重复通常是打开的)都接收到一个键盘按下事件。如果你把它打开并且你的应用程序更不上键盘输入,Qt也许会试图压缩键盘事件,这样每一个事件中就会处理多于一个字符的情况。
例如,如果布局重新运算占用太长时间的CPU,一个字处理器窗口部件接收每一个QKeyEvent::text()中的2个、3个或更多字符。
如果窗口部件支持多字符unicode输入,它对于这种压缩打开总是安全的。
Qt只对可打印的字符执行键盘事件压缩。修正键、光标移动键、功能键和其它操作键(比如,Escape、Return、Backspace、PrintScreen)将会停止键盘事件压缩,即使如果可以更多可压缩的键盘事件。
并不是所有的平台都支持这种压缩,在这种情况下如果把这个选项打开将不会有任何效果。
也可以参考QKeyEvent::text().
注意如果区域相当复杂,这种效果会很慢。
也可以参考clearMask()。
导致只有和region重合的窗口部件的部分是可视的。如果包含像素的区域在窗口部件的rect()之外,在那个区域的窗口系统控制允许可视,也许不可视,依赖于平台。
注意如果区域相当复杂,这种效果会很慢。
也可以参考clearMask()。
设置这个窗口部件的最大高度为maxh。详细情况请参考“maximumHeight”属性。
设置这个窗口部件的最大大小。详细情况请参考“maximumSize”属性。
这个函数相当于setMaximumSize( QSize(maxw, maxh) )。设置最大宽度为maxw,最大高度为maxh。
设置这个窗口部件的最大宽度为maxw。详细情况请参考“maximumWidth”属性。
如果这是一个文本输入位置,text参数应该为真。
在Windows版本的Qt中,这个方法设置系统插入符号,这用户用户可访问的焦点处理。如果text为真,在远东亚洲语言输入系统中,它也会设置输入法的。
在X11版本的Qt中,如果text为真,这个方法为复杂语言输入处理设置XIM“spot”点。
字体参数f现在不使用了。
也可以参考microFocusHint。
设置这个窗口部件的最小高度为minh。详细情况请参考“minimumHeight”属性。
设置这个窗口部件的最小大小。详细情况请参考“minimumSize”属性。
这个函数相当于setMinimumSize( QSize(minw, minh) )。设置最小宽度为minw,最小高度为minh。
设置这个窗口部件的最小宽度为minw。详细情况请参考“minimumWidth”属性。
设置对于这个窗口部件鼠标跟踪是否生效为enable。详细情况请参考“mouseTracking”属性。
设置这个窗口部件的调色板。详细情况请参考“palette”属性。
在QComboBox、QScrollBar和QSlider中被重新实现。
使用setPalette( const QPalette& p )替代它。
设置这个窗口部件的背景色。详细情况请参考“paletteBackgroundColor”属性。
设置这个窗口部件的背景像素映射。详细情况请参考“paletteBackgroundPixmap”属性。
设置这个窗口部件的前景色。详细情况请参考“paletteForegroundColor”属性。
设置这个窗口部件的大小增量。详细情况请参考“sizeIncrement”属性。
设置x(宽度)大小增量为w,y(高度)大小增量为h。
设置这个窗口部件的默认布局方式。详细情况请参考“sizePolicy”属性。
如果没有风格被设置,这个窗口部件使用应用程序的风格QApplication::style()替代它。
设置窗口部件的风格对于已经存在或未来的子窗口部件没有效果。
警告:当你想显示Qt的风格的能力时,这个函数对于演示目的很有用。真正的应用程序应该避免它并且使用一个一致的图形用户界面风格来替代它。
也可以参考style()、QStyle、QApplication::style()和QApplication::setStyle()。
实例:grapher/grapher.cpp和progressbar/progressbar.cpp。
使用QStyleFactory设置这个窗口部件的图形用户界面风格为style。
注意因为second窗口部件的tab顺序被改变,你应该用链的方式安排顺序:
setTabOrder( a, b ); // a到b setTabOrder( b, c ); // a到b到c setTabOrder( c, d ); // a到b到c到d
不能像这样:
setTabOrder( c, d ); // c到d,错误 setTabOrder( a, b ); // a到b并且c到d setTabOrder( b, c ); // a到b到c,而不是c到d
如果first或second有焦点代理,setTabOrder()替代它/它们的代理。
也可以参考focusPolicy和setFocusProxy()。
实例:customlayout/main.cpp.
设置更新是否生效为enable。详细情况请参考“updatesEnabled”属性。
设置窗口部件标记为f。
窗口部件标记为Qt::WidgetFlags的组合。
也可以参考testWFlags()、getWFlags()和clearWFlags()。
如果它的大小或位置已经发生改变,Qt保证窗口部件正好在被显示之前得到移动和重定义大小事件。
你几乎不用重新实现这个函数。如果你需要在一个窗口部件被显示之前改变一些东西,请使用showEvent()替代它。如果你需要对初始化延时,请使用polish()。
也可以参考showEvent()、hide()、showMinimized()、showMaximized()、showNormal()、visible和polish()。
实例:canvas/main.cpp、fonts/simple-qfont-demo/simple-qfont-demo.cpp、life/main.cpp、popup/popup.cpp、t1/main.cpp、t3/main.cpp和t4/main.cpp。
在QDialog和QMenuBar中被重新实现。
在窗口部件被显示之前,非自发显示事件立即被发送给窗口部件。顶级窗口部件的自发显示事件在这之后被交付。
也可以参考event()和QShowEvent。
实例:qdir/qdir.cpp。
调用这个函数只有对顶级窗口部件有效。
为了从全屏模式返回,请调用showNormal()。
全屏模式在Windows下工作的非常好,但是在X下却有些问题。这些问题是由于指定X11客户端和窗口管理器之间通讯的ICCCM协议的限制。ICCCM很简单地不能理解无装饰的全屏模式窗口这一概念。因此,我们所能做的最好方式是请求一个无边框窗口并且放置和重定以它的大小为整个屏幕。依赖窗口管理器,这也许能工作,也许不能。无边框窗口使用MOTIF提示被请求,至少可以被实际存在地所有现代窗口管理器能够部分支持。
另一个方法是绕过整个窗口管理器并且使用WX11BypassWM标记创建一个窗口。尽管这样还会有其它一些问题,比如完全地破坏键盘焦点和当桌面变化时或用户升起其它窗口时会有非常奇怪的效果。
遵循现代的后ICCCM规范的未来X11窗口管理器也许能够完全地支持全屏模式。
也可以参考showNormal()、showMaximized()、show()、hide()和visible。
对不是顶级窗口部件的,调用这个函数没有任何效果。
在X11下,这个函数在特定窗口管理器下允许不能正常工作。关于为什么的详细情况请参考窗口几何形状文档。
也可以参考showNormal()、showMinimized()、show()、hide()和visible。
实例:canvas/main.cpp、helpviewer/main.cpp、mdi/application.cpp、qwerty/main.cpp、qwerty/qwerty.cpp和scribble/main.cpp。
对不是顶级窗口部件的,调用这个函数没有任何效果。
也可以参考showNormal()、showMaximized()、show()、hide(), visible和minimized。
对不是顶级窗口部件的,调用这个函数没有任何效果。
也可以参考showMinimized()、showMaximized()、show()、hide()和visible。
实例:mdi/application.cpp。
返回不包含任何窗口框架的窗口部件的大小。详细情况请参考“size”属性。
返回建议的窗口部件大小。详细情况请参考“sizeHint”属性。
在QSizeGrip中被重新实现。
返回窗口部件的大小增量。详细情况请参考“sizeIncrement”属性。
返回窗口部件的默认布局行为。详细情况请参考“sizePolicy”属性。
为了保证这个能工作,这个窗口部件自己和w必须是兄弟。
也可以参考raise()和lower()。
也可以参考QWidget::setStyle()、QApplication::setStyle()和QApplication::style()。
如果你的窗口部件需要知道什么时候它的图形用户界面发生变化,请重新实现这个函数。你几乎必然需要使用update()来更新窗口部件。
默认实现是更新包括几何形状的窗口部件。
也可以参考QApplication::setStyle()、style()、update()和updateGeometry()。
如果你重新实现这个处理器,如果你不处理它的话,你忽略(ignore())这个事件是非常重要的,这样这个窗口部件的父对象就可以解释它。
默认实现是忽略这个事件。
也可以参考QTabletEvent::ignore()、QTabletEvent::accept()、event()和QTabletEvent。
返回这个窗口部件的标记和f的位与(AND)运算结果。
窗口部件标记是Qt::WidgetFlags的组合。
也可以参考getWFlags()、setWFlags()和clearWFlags()。
如果这个窗口部件是顶级的,它自己被返回。
通常的使用方法是改变窗口标题:
aWidget->topLevelWidget()->setCaption( "New Caption" );
也可以参考isTopLevel。
重置这个窗口部件的光标形状。详细情况请参考“cursor”属性。
重置这个窗口部件的字体当前设置。详细情况请参考“font”属性。
重置这个窗口部件的调色板。详细情况请参考“palette”属性。
这个函数不会导致一个立刻的重新绘制——更正确的是,当Qt回到主事件回路中时,它规划了所要处理的绘制事件。这样允许Qt来优化得到比调用repaint()更快的速度和更少的闪烁。
几次调用update()的结果通常仅仅是一次paintEvent()调用。
Qt通常在paintEvent()调用之前擦除这个窗口部件的区域。仅仅只有在WRepaintNoErase窗口部件标记被设置的时候,窗口部件本身对绘制它所有的像素负有责任。
也可以参考repaint()、paintEvent()、updatesEnabled、erase()和setWFlags()。
实例:desktop/desktop.cpp和scrollview/scrollview.cpp。
更新窗口部件中的矩形(x, y, w, h),除非更新已经失效或者窗口部件被隐藏。
这个函数不会导致一个立刻的重新绘制——更正确的是,当Qt回到主事件回路中时,它规划了所要处理的绘制事件。这样允许Qt来优化得到比调用repaint()更快的速度和更少的闪烁。
几次调用update()的结果通常仅仅是一次paintEvent()调用。
如果w为负数,它被width()-x替换。如果h为负数,它被height()-y替换。
Qt通常在paintEvent()调用之前擦除这个窗口部件的区域。仅仅只有在WRepaintNoErase窗口部件标记被设置的时候,窗口部件本身对绘制它所有的像素负有责任。
也可以参考repaint(), paintEvent(), updatesEnabled and erase().
更新窗口部件中的矩形r,除非更新已经失效或者窗口部件被隐藏。
这个函数不会导致一个立刻的重新绘制——更正确的是,当Qt回到主事件回路中时,它规划了所要处理的绘制事件。这样允许Qt来优化得到比调用repaint()更快的速度和更少的闪烁。
几次调用update()的结果通常仅仅是一次paintEvent()调用。
如果sizeHint()或sizePolicy()已经发生变化,请调用这个函数。
对于明确隐藏的窗口部件,updateGeometry()是没有操作的。只要这个窗口部件一显示出来,布局系统就将被通告。
也可以参考autoMask、setMask()和clearMask()。
返回窗口部件的当前可见矩形。详细情况请参考“visibleRect”属性。
如果你重新实现这个处理器,如果你不处理它的话,你忽略(ignore())这个事件是非常重要的,这样这个窗口部件的父对象就可以解释它。
默认实现是忽略这个事件。
也可以参考QWheelEvent::ignore()、QWheelEvent::accept()、event()和QWheelEvent。
返回不包含任何窗口框架的窗口部件宽度。详细情况请参考“width”属性。
在重新实现的这个函数中,如果你想停止Qt对这个事件的处理,请返回真。如果你返回假,这个本地事件被回传给Qt,它会把这个事件转化为一个Qt事件并且把它发送给这个窗口部件。
警告:这个函数不能移植。
也可以参考QApplication::winEventFilter()。
返回窗口部件的窗口系统标识符。
原则上是可以移植的,但是如果使用了它,一定是做了一些不可移植的事情。请留心。
也可以参考find()。
实例:mainlyXt/editor.cpp.
当窗口部件的窗口被窗口系统激活或者停用,这个虚函数被调用。oldActive是原来的状态,你可以通过isActiveWindow()得到新的设置。
如果你的窗口部件需要知道什么时候它的窗口变为激活或停用,请重新实现这个函数。
如果停止和激活颜色组不同与高亮和连接颜色,默认实现更新这个窗口部件的可视部分。
也可以参考setActiveWindow()、isActiveWindow、update()和palette。
返回包括任何窗口框架的相对于它的父窗口部件的这个窗口部件的x坐标。详细情况请参考“x”属性。
在重新实现的这个函数中,如果你想停止Qt对这个事件的处理,请返回真。如果你返回假,这个本地事件被回传给Qt,它会把这个事件转化为一个Qt事件并且把它发送给这个窗口部件。
警告:这个函数不能移植。
也可以参考QApplication::x11EventFilter()。
在QXtWidget中被重新实现。
返回包括任何窗口框架的相对于它的父窗口部件的这个窗口部件的y坐标。详细情况请参考“y”属性。
这个属性保存的是窗口部件中放下事件是否有效。
设置这个属性为真告诉系统这个窗口部件可以能够接收放下事件。
如果窗口部件是桌面(QWidget::isDesktop()),如果其它应用程序正在使用桌面,这也许会失败,你可以调用acceptDrops()来测试这种情况是否发生。
通过setAcceptDrops()可以设置属性值并且通过acceptDrops()来获得属性值。
这个属性保存的是窗口部件中自动面具特征是否有效。
透明窗口部件使用面具来定义它们的可视区域。QWidget有一些内置的支持可以使重新计算面具的任务更容易。当设置自动面具为真,只要窗口部件改变大小或者改变它的焦点状态updateMask()就将会被调用。注意你必须重新实现updateMask()(其中应该包含一个setMask()的调用)或者什么都不会发生。
注意:当你在你的自定义窗口部件中被重新实现resizeEvent()、focusInEvent()或focusOutEvent()时并且还想确认自动面具计算工作,你应该在你的事件处理函数的后面添加:
if ( autoMask() ) updateMask();
对于所有改变窗口部件的外观,都需要一个重新计算的面具,这都是真的。
虽然面具是一个技术上很吸引人的概念,但是他有一个很大的缺点:当使用复杂的不能被很容易地使用相对简单的区域表达的面具时,它们在一些窗口系统中很慢。经典的实例就是透明的标签。它的内容的复杂形状使它需要用一个位图重新描述它的面具,这将会消耗内存和事件。如果你想让几个临近的窗口部件的背景没有缝隙的融合在一起,你也许想使用的是setBackgroundOrigin(),而不是面具。
也可以参考updateMask()、setMask()、clearMask()和backgroundOrigin。
通过setAutoMask()可以设置属性值并且通过autoMask()来获得属性值。
这个属性保存的是窗口部件的背景画刷。
背景画刷依赖于窗口部件的调色板和它的背景模式。
也可以参考backgroundColor()、backgroundPixmap()、eraseColor()、palette和QApplication::setPalette()。
通过backgroundBrush()来获得属性值。
这个属性保存的是绘制窗口部件背景所使用的颜色模式。
setPaletteBackgroundColor()读取这个属性来决定palette中的哪一个被设置。
对于绝大多数出口部,默认的就足够了(PaletteBackground,通常是灰色),但是一些需要使用PaletteBase(文本输出的背景,通常是白色)或者其它模式。
凹陷的QListBox并且为了和它的环境形成对照使用基本色,在构造函数中这样做:
setBackgroundMode( PaletteBase );
对于Qt内置的窗口部件,你永远都不需要为它们设置背景模式,但是你也许需要在你的自定义窗口部件中考虑设置一下,这样setPaletteBackgroundColor()就可以像被期待地那样工作。
注意对于setBackgroundMode()中的两个背景模式值,名为FixedPixmap何FixedColor,没有什么意义。你必须调用setBackgroundPixmap()和setPaletteBackgroundColor()来替代。
通过setBackgroundMode()可以设置属性值并且通过backgroundMode()来获得属性值。
这个属性保存的是窗口部件的背景的原点。
这个原点是WidgetOrigin(默认)、ParentOrigin和WindowOrigin其中之一。
只有在窗口部件有一个背景像素映射,对于定位有所不同。使用WindowOrigin,临近的几个窗口部件的背景会融合的很好好像没有缝隙一样。
也可以参考backgroundPixmap()和backgroundMode。
通过setBackgroundOrigin()设置属性值并且通过backgroundOrigin()来获得属性值。
这个属性保存的是窗口部件的基础大小。
如果窗口部件定义了sizeIncrement(),基础大小就被用来计算一个确切的窗口部件大小。
也可以参考sizeIncrement。
通过setBaseSize()设置属性值并且通过baseSize()来获得属性值。
This property holds the window caption (title). 这个属性保存的是窗口标题。
这个属性只对顶级窗口部件有用。如果没有标题被设置,标题就为QString::null。
也可以参考icon and iconText。
通过setCaption()可以设置属性值并且通过caption()来获得属性值。
这个属性保存的是窗口部件的子对象的边界矩形。
隐藏的子对象除外。
也可以参考childrenRegion和geometry。
通过childrenRect()来获得属性值。
这个属性保存的是窗口部件的子对象所占用的组合区域。
隐藏的子对象除外。
也可以参考childrenRect和geometry。
通过childrenRegion()来获得属性值。
This property holds the current color group of the widget palette. 这个属性保存的是窗口部件调色板的当前颜色组。
颜色组由窗口部件的状态决定。一个失效的窗口部件是QPalette::disabled()颜色组,一个有键盘焦点的窗口部件是QPalette::active()颜色组,一个停止的窗口部件是QPalette::inactive()颜色组。
也可以参考palette。
通过colorGroup()来获得属性值。
这个属性保存的是窗口部件的光标外形。
当鼠标在窗口部件之上时,鼠标光标将采用这个外形。对于可以使用的外形的范围请参考预定义的光标对象列表。
一个编辑器窗口部件也许使用I形光标:
setCursor( IbeamCursor );
如果没有光标被设置,或者在调用unsetCursor()之后,父对象的光标被使用。函数unsetCursor()对于顶级窗口部件没有效果。
也可以参考QApplication::setOverrideCursor()。
通过setCursor()设置属性值,通过cursor()来获得属性值并且通过unsetCursor()重置属性值。
这个属性保存的是窗口部件是否手动处理“这是什么”的帮助。
customWhatsThis()的默认实现返回假,这也就是说窗口部件在“这是什么”状态将不接受任何事件。
通过调用QWhatsThis::leaveWhatsThisMode(),不管有没有任何实际显示的帮助文本,窗口部件会离开“这是什么”模式。
如果你的窗口部件是一个“被动的内部行动者”,假设在所有环境下工作时,你也许要重新实现customWhatsThis()。
也可以参考QWhatsThis::inWhatsThisMode()和QWhatsThis::leaveWhatsThisMode()。
通过customWhatsThis()来获得属性值。
这个属性保存的是窗口部件是否有效。
一个有效的窗口部件接收键盘和鼠标事件,一个失效的窗口部件不能。实际上,有效的窗口部件只有在它处于焦点时才接收键盘事件。
一些窗口部件当它们被失效的时候,显示得不同。例如,一个按钮也许把它的标签变灰。如果你的窗口部件需要知道它什么时候生效或失效,你可以重新实现enabledChange()函数。
使一个窗口部件失效就隐含地使它所有的子对象失效。使一个窗口部件生效就会逐个把它的子窗口部件生效,除非它们被明确地失效。
也可以参考enabled、isEnabledTo()、QKeyEvent、QMouseEvent和enabledChange()。
通过setEnabled()设置属性值并且通过isEnabled()来获得属性值。
这个属性保存的是窗口部件(或者它的焦点代理)是否得到键盘输入焦点。
实际上等价于qApp->focusWidget() == this。
也可以参考setFocus()、a href="#clearFocus">clearFocus()、focusPolicy和QApplication::focusWidget()。
通过hasFocus()来获得属性值。
这个属性保存的是窗口部件是否接收键盘焦点。
键盘焦点初始状态是失效的(比如,focusPolicy() == QWidget::NoFocus)。
如果一个窗口部件处理键盘事件,你必须为它使键盘焦点生效。这通常在窗口部件的构造函数中完成。例如,QLineEdit的构造函数调用setFocusPolicy(QWidget::StrongFocus)。
也可以参考focusPolicy、focusInEvent()、focusOutEvent()、keyPressEvent()、keyReleaseEvent()和enabled。
通过isFocusEnabled()来获得属性值。
这个属性保存的是窗口部件接收键盘焦点的策略。
如果窗口部件通过tab来接收键盘焦点,这个策略就是QWidget::TabFocus;如果窗口部件通过点击来接收键盘焦点,这个策略就是QWidget::ClickFocus;如果窗口部件上述两种方式都使用,是QWidget::StrongFocus;并且如果它不接收焦点(QWidget的默认值),是QWidget::NoFocus。
如果一个窗口部件处理键盘事件,你必须为它使键盘焦点生效。这通常在窗口部件的构造函数中完成。例如,QLineEdit的构造函数调用setFocusPolicy(QWidget::StrongFocus)。
也可以参考focusEnabled、focusInEvent()、focusOutEvent()、keyPressEvent()、keyReleaseEvent()和enabled。
通过setFocusPolicy()设置属性值并且通过focusPolicy()来获得属性值。
这个属性保存的是窗口部件当前的字体集。
fontInfo()函数报告这个窗口部件所用的实际字体。
只要没有特定字体被设置,或者在unsetFont()被调用之后,那么这个窗口部件类使用父窗口部件的字体或者(如果这个窗口部件是顶级窗口部件)使用默认应用程序字体。
这段代码设置12点的helvetica粗字体:
QFont f( "Helvetica", 12, QFont::Bold ); setFont( f );
另外设置字体时,setFont()通知所有子对象关于这个变化。
也可以参考fontChange()、fontInfo()、fontMetrics()和ownFont。
通过setFont()设置属性值,通过font()来获得属性值并且通过unsetFont()重置属性值。
这个属性保存的是相对于它的父对象包含任何窗口框架的窗口部件的几何形状。
对于顶级窗口部件的几何形状的概述请参考窗口几何形状文档。
也可以参考geometry、x、a href="#y-prop">y和pos。
通过frameGeometry()来获得属性值。
这个属性保存的是包含任何窗口框架的窗口部件的大小。
通过frameSize()来获得属性值。
这个属性保存的是相对于它的父对象不包括窗口框架的窗口部件的几何形状。
当窗口部件改变几何形状时,如果它是可视的,它立即接收到一个移动事件(moveEvent())和/或一个重定义大小(resizeEvent())。如果它当前不是可视的,它被保证会在被显示之前接收到适当的事件。
如果它在由minimumSize()和maximumSize()定义的范围之外,大小组件被调整。
setGeometry()是虚的,并且所有Qt中其它重载setGeometry()的重新实现调用它。
警告:在resizeEvent()或moveEvent()中调用setGeometry()会导致无限循环。
对于顶级窗口部件的几何形状的概述请参考窗口几何形状文档。
也可以参考frameGeometry、rect、pos、size、moveEvent()、resizeEvent()、minimumSize和maximumSize。
通过setGeometry()设置属性值并且通过geometry()来获得属性值。
这个属性保存的是不包括窗口框架的窗口部件的高度。
对于顶级窗口部件的几何形状的概述请参考窗口几何形状文档。
也可以参考geometry、width和size。
通过height()来获得属性值。
这个属性保存的是窗口部件是否明确地隐藏。
如果为假,这个窗口部件是可视的或者如果它的所有祖先变为可视,它将变为可视的。
也可以参考hide()、show()、visible和isVisibleTo()。
通过isHidden()来获得属性值。
这个属性保存的是窗口部件图标像素映射。
这个属性只对顶级窗口部件有效。如果没有图标被设置,icon()返回0。
也可以参考iconText、caption和设置应用程序图标。
通过setIcon()设置属性值并且通过icon()来获得属性值。
这个属性保存的是窗口部件图标文本。
这个属性只对顶级窗口部件有效。如果没有图标文本被设置,这个函数返回QString::null。
也可以参考icon和caption。
通过setIconText()设置属性值并且通过iconText()来获得属性值。
这个属性保存的是窗口部件或者它的一个子对象是否是活动窗口。
活动窗口是有键盘焦点的窗口
当弹出窗口是可视的,这个属性对于活动窗口和这个弹出窗口都是真。
也可以参考setActiveWindow()和QApplication::activeWindow()。
通过isActiveWindow()来获得属性值。
这个属性保存的是窗口部件是否是桌面窗口部件,比如,代表桌面。
一个桌面窗口部件也是顶级窗口部件。
也可以参考isTopLevel和QApplication::desktop()。
通过isDesktop()来获得属性值。
这个属性保存的是窗口部件是否是对话框窗口部件。
对话框窗口部件是次要的顶级窗口部件,比如一个有父对象的顶级窗口部件。
也可以参考isTopLevel和QDialog。
通过isDialog()来获得属性值。
这个属性保存的是窗口部件是否是模式窗口部件。
这个属性只对顶级窗口部件有效。一个模式窗口部件防止对其它所有顶级窗口部件得到任何输入。
也可以参考isTopLevel、isDialog和QDialog。
通过isModal()来获得属性值。
这个属性保存的是窗口部件是否是弹出窗口部件。
一个弹出窗口部件是在窗口部件的构造函数中使用窗口部件标记WType_Popup创建的。一个弹出窗口部件也是一个顶级窗口部件。
也可以参考isTopLevel。
通过isPopup()来获得属性值。
This property holds whether the widget is a top-level widget. 这个属性保存的是窗口部件是否是顶级窗口部件。
顶级窗口部件通常有框架和标题。弹出和桌面窗口部件也是顶级窗口部件。
顶级窗口部件可以有父窗口部件。然后它和它的父窗口部件就形成一个组并且当它的父对象被删除或最小化等等时,它也被删除或最小化等等。如果被窗口部件支持的话,它和它的父对象一样也有一个普通任务栏条目。
QDialog和QMainWindow窗口部件默认是顶级的,尽管在构造函数中被指定一个父窗口部件。这个行为是由WType_TopLevel窗口部件标记指定的。
也可以参考topLevelWidget()、isDialog、isModal、isPopup、isDesktop和parentWidget()。
通过isTopLevel()来获得属性值。
这个属性保存的是窗口部件的最大高度。
这个属性和maximumSize().height()一致。
也可以参考maximumSize和maximumWidth。
通过setMaximumHeight()设置属性值并且通过maximumHeight().来获得属性值。
这个属性保存的是窗口部件的最大大小。
这个窗口部件不能被重定义为比这个最大大小更大的大小了。
也可以参考maximumWidth、maximumHeight、maximumSize、minimumSize和sizeIncrement。
通过setMaximumSize()设置属性值并且通过maximumSize()来获得属性值。
这个属性保存的是窗口部件的最大宽度。
这个属性和maximumSize().width()一致。
也可以参考maximumSize和maximumHeight。
通过setMaximumWidth()设置属性值并且通过maximumWidth()来获得属性值。
这个属性保存的是窗口部件的当前设置的微焦点提示。
更多信息请参考setMicroFocusHint()的文档。
通过microFocusHint()来获得属性值。
这个属性保存的是窗口部件是否是最小化的(变为图标了)。
这个属性和顶级窗口部件相关。
也可以参考showMinimized()、visible、show()、hide()和showNormal()。
通过isMinimized()来获得属性值。
这个属性保存的是窗口部件的最小高度。
这个属性和minimumSize().height()一致。
也可以参考minimumSize和minimumWidth。
通过setMinimumHeight()设置属性值并且通过minimumHeight()来获得属性值。
这个属性保存的是窗口部件的最小大小。
这个窗口部件不能被重定义比这个最小大小更小的大笑了。如果当前大小更小的话,窗口部件的大小被强制为最小大小。
如果你在这个窗口部件中使用了布局,最小大小将会被这个布局设置,而不是setMinimumSize(),除非你设置布局的重定义大小模式为QLayout::FreeResize。
也可以参考minimumWidth、minimumHeight、maximumSize、sizeIncrement和QLayout::resizeMode。
通过setMinimumSize()设置属性值并且通过minimumSize()来获得属性值。
这个属性保存的是建议的窗口部件最小大小。
如果这个属性值是无效的大小,那么就没有被建议的最小大小了。
如果这个窗口部件中没有布局,minimumSizeHint()默认实现返回无效大小并且否则的话返回布局的最小大小。绝大多数内置窗口部件重新实现了minimumSizeHint()。
QLayout从来不会重定义窗口部件大小小于minimumSizeHint。
也可以参考QSize::isValid()、size、minimumSize和sizePolicy。
通过minimumSizeHint()来获得属性值。
这个属性保存的是窗口部件的最小宽度。
这个属性和minimumSize().width()一致。
也可以参考minimumSize和minimumHeight。
通过setMinimumWidth()设置属性值并且通过minimumWidth()来得到属性值。
这个属性保存的是窗口部件跟踪鼠标是否生效。
如果鼠标跟踪失效(默认),当鼠标被移动的时候只有在至少一个鼠标按键被按下时,这个窗口部件才会接收鼠标移动事件。
如果鼠标跟踪生效,如果没有按键被按下,这个窗口部件也会接收鼠标移动事件。
也可以参考mouseMoveEvent()和QApplication::setGlobalMouseTracking()。
通过setMouseTracking()设置属性值并且通过hasMouseTracking()来获得属性值。
这个属性保存的是窗口部件是否使用它自己的光标。
如果为假,这个窗口部件使用它父窗口部件的光标。
也可以参考cursor。
通过ownCursor()来获得属性值。
这个属性保存的是窗口部件是否使用它自己的字体。
如果为假,这个窗口部件使用它父窗口部件的字体。
也可以参考font。
通过ownFont()来获得属性值。
这个属性保存的是窗口部件是否使用它自己的调色板。
如果为假,这个窗口部件使用它父窗口部件的调色板。
也可以参考palette。
通过ownPalette()来获得属性值。
这个属性保存的是窗口部件的调色板。
只要没有特定的调色板被设置,或者在unsetPalette()被调用之后,这个窗口部件的特定调色板就是父窗口部件的调色板或者(如果这个窗口部件是顶级窗口部件)默认的应用程序调色板。
可以替代定义整个新的调色板的,你也可以使用paletteBackgroundColor、paletteBackgroundPixmap和paletteForegroundColor方便的属性来只改变窗口部件的背景和前景外观。
也可以参考ownPalette、colorGroup和QApplication::palette()。
通过setPalette()设置属性值,通过palette()来获得属性值并且通过unsetPalette()重置属性值。
这个属性保存的是窗口部件的背景色。
这个调色板背景色通常被setBackgroundMode()隐含地设置,尽管它也可以由setPaletteBackgroundColor()明显地设置。setPaletteBackgroundColor()是一个创建和设置通过setPalette()修改过的QPalette方便函数。这个调色板根据窗口部件的背景模式被修改。例如,如果背景模式是PaletteButton,调色板的QColorGroup::Button颜色条目所用的颜色被设置。
如果有一个背景像素映射(使用setPaletteBackgroundPixmap()设置的),那么这个函数的返回值是不确定的。
也可以参考paletteBackgroundPixmap、paletteForegroundColor、palette和colorGroup。
通过setPaletteBackgroundColor()设置属性值,通过paletteBackgroundColor()来获得属性值并且通过unsetPalette()重置属性值。
这个属性保存的是窗口部件的背景像素映射。
这个调色板背景像素映射通常被setBackgroundMode()隐含地设置,尽管它也可以由setPaletteBackgroundPixmap()明显地设置。setPaletteBackgroundPixmap()是一个创建和设置通过setPalette()修改过的QPalette方便函数。这个调色板根据窗口部件的背景模式被修改。例如,如果背景模式是PaletteButton,调色板的QColorGroup::Button颜色条目所用的像素映射被设置。
如果有一个简单的背景颜色(使用setPaletteBackgroundColor()设置的),那么这个函数返回0。
也可以参考paletteBackgroundColor、paletteForegroundColor、palette和colorGroup。
通过setPaletteBackgroundPixmap()设置属性值,通过paletteBackgroundPixmap()来获得属性值并且通过unsetPalette()重置属性值。
这个属性保存的是窗口部件的前景色。
setPaletteForegroundColor()是一个创建和设置通过setPalette()修改过的QPalette方便函数。这个调色板根据窗口部件的背景模式被修改。例如,如果背景模式是PaletteButton,调色板的QColorGroup::ButtonText颜色条目所用的颜色被设置。
也可以参考palette、QApplication::setPalette()、backgroundMode、foregroundColor()、backgroundMode和setEraseColor()。
通过setPaletteForegroundColor()设置属性值,通过paletteForegroundColor()来获得属性值并且通过unsetPalette().重置属性值。
这个属性保存的是窗口部件在它的父窗口部件中的位置。
如果这个窗口部件是顶级窗口部件,那它的位置就是在桌面上包括它的框架的窗口部件的位置。
当改变位置时,这个窗口部件如果可视,会立即接收一个移动事件(moveEvent())。如果这个窗口部件当前不是可视的,它被保证会在它被显示之前收到这个事件。
move()是虚函数,并且Qt中所有其它重载move()的重新实现都调用它。
警告:在moveEvent()调用move()或setGeometry()会导致无限循环。
对于顶级窗口部件的几何形状的概述请参考窗口几何形状文档。
也可以参考frameGeometry、size、x和y。
通过move()设置属性值并且通过pos()来获得属性值。
这个属性保存的是不包含任何窗口框架的窗口部件的内部几何形状。
这个矩形属性等于QRect(0, 0, width(), height())。
对于顶级窗口部件的几何形状的概述请参考窗口几何形状文档。
也可以参考size。
通过rect()来获得属性值。
这个属性保存的是不包含任何窗口框架的窗口部件的大小。
当重新定义大小时,这个窗口部件如果可视,会立即收到一个重新定义大小事件(resizeEvent())。如果这个窗口部件当前不是可视的,它被保证会在它被显示之前收到这个事件。
如果这个大小在minimumSize()和a href="#maximumSize">maximumSize()定义的范围之外,它被调整。此外,这个大小总是至少为QSize(1, 1)。
resize()是虚函数,并且Qt中所有其它重载resize()的重新实现都调用它。
警告:在resizeEvent()调用resize()或setGeometry()会导致无限循环。
也可以参考pos、geometry、minimumSize、maximumSize和resizeEvent()。
通过resize()设置属性值并且通过size()来获得属性值。
这个属性保存的是建议的窗口部件大小。
如果这个属性值是无效的大小,那么就没有大小被建议。
如果这个窗口部件没有布局,sizeHint()的默认实现返回一个无效大小,并且否则的话就返回布局的首选大小。
也可以参考QSize::isValid()、minimumSizeHint、sizePolicy、minimumSize和updateGeometry()。
通过sizeHint()来获得属性值。
这个属性保存的是窗口部件的大小增量。
当用户重新定义窗口的大小时,大小会在水平方向上按sizeIncrement().width()像素和垂直方向上按sizeIncrement.height()像素来逐步变化,基础大小为baseSize() 。首选的窗口部件大小为非负整数i和j:
width = baseSize().width() + i * sizeIncrement().width(); height = baseSize().height() + j * sizeIncrement().height();
注意,当你为所有的窗口部件设置大小增量时,它只对顶级窗口部件有效。
警告:大小增量在Windows下没有效果,并且也许会被X上的窗口管理器忽视。
也可以参考size、minimumSize和maximumSize。
通过setSizeIncrement()设置属性值并且通过sizeIncrement()来获得属性值。
这个属性保存的是窗口部件的默认布局行为。
如果有一个QLayout管理这个窗口部件的子对象,这个大小策略由布局使用的大小策略指定。如果没有这样的QLayout,那么这个函数的结果被使用。
默认策略是首选/首选,也就是说窗口部件可以被自由地重新定义大小,但是首选的是sizeHint()返回的大小。具有按钮特征的窗口部件设置它们的大小策略为水平方向可以伸展,但垂直方向固定。这同样适用于行编辑控件(比如QLineEdit、QSpinBox或可编辑的QComboBox)和其它水平方向的窗口部件(比如QProgressBar)。QToolButton的大小策略通常是允许两个方向都可以变化。支持不同方向的窗口部件(比如QSlider、QScrollBar或QHeader)仅仅按被指定的方向变化。可以提供滚动条的窗口部件(通常是QScrollView的子类)趋向于指定它们可以使用额外的空间,并且它们可以在小于sizeHint()时正常工作。
也可以参考sizeHint、QLayout、QSizePolicy和updateGeometry()。
通过setSizePolicy()设置属性值并且通过sizePolicy()来获得属性值。
这个属性保存的是窗口部件是否在鼠标光标下。
这个值在拖放操作期间不会被完全地更新。
也可以参考QEvent::Enter和QEvent::Leave。
通过hasMouse()来获得属性值。
这个属性保存的是更新是否生效。
如果更新失效,调用update()和repaint()是没有效果的。如果更新失效,来自窗口系统的绘制事件会被正常处理。
setUpdatesEnabled()通常被用于在一小段事件内使更新失效,例如为了避免在大的变化期间发生屏幕闪烁。
实例:
setUpdatesEnabled( FALSE ); bigVisualChanges(); setUpdatesEnabled( TRUE ); repaint();
也可以参考update()、repaint()和paintEvent()。
通过setUpdatesEnabled()设置属性值并且通过isUpdatesEnabled()来获得属性值。
这个属性保存的是窗口部件是否可视。
如果窗口部件的父窗口部件直到顶级窗口部件是可视的,调用show()设置它为可视的。如果有一个祖先是不可视的,直到它的所有祖先被显示时,这个窗口部件才会变为可视。
调用hide()明显地隐藏一个窗口部件。一个明显地被隐藏的窗口部件永远不会被变为可视,尽管它的所有祖先都变为可视,除非你显示它。
图标化的顶级窗口部件也处在隐藏状态,也就是isMinimized()返回真。存在于另一个虚拟桌面上的窗口(在一些支持这个概念的平台上)也处在隐藏状态。
一个窗口部件会因为屏幕上其它可视的窗口部件而变暗。
当窗口部件的可视状态发生变化时,它接收显示和隐藏事件。隐藏和显示事件都不需要浪费CPU在准备或显示信息给用户。例如,一个视频应用程序也许只是简单地停止产生新的帧。
也可以参考show(), hide()、hidden、isVisibleTo()、minimized、showEvent()和hideEvent()。
通过isVisible()来获得属性值。
这个属性保存的是窗口部件的当前可视矩形。
这个属性对于优化窗口部件的立即重新绘制很有用。典型用法是:
repaint( w->visibleRect() );或
repaint( w->visibleRect(), FALSE );
如果没有什么是可视的,这个返回的矩形为空。
通过visibleRect()来获得属性值。
这个属性保存的是不包含任何窗口框架的窗口部件宽度。
对于顶级窗口部件的几何形状的概述请参考窗口几何形状文档。
也可以参考geometry、height和size。
通过width()来获得属性值。
这个属性保存的是相对于它的父对象包含任何窗口框架的窗口部件的x坐标。
对于顶级窗口部件的几何形状的概述请参考窗口几何形状文档。
也可以参考frameGeometry、y和pos。
通过x()来获得属性值。
这个属性保存的是相对于它的父对象包含任何窗口框架的窗口部件的y坐标。
对于顶级窗口部件的几何形状的概述请参考窗口几何形状文档。
也可以参考frameGeometry、x和pos。
通过y()来获得属性值。
这个文件是Qt工具包一部分。版权所有 © 1995-2002 Trolltech。保留所有权利。
Copyright © 2002 |