QT常用类整理.docx
- 文档编号:29640093
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:21
- 大小:25.50KB
QT常用类整理.docx
《QT常用类整理.docx》由会员分享,可在线阅读,更多相关《QT常用类整理.docx(21页珍藏版)》请在冰豆网上搜索。
QT常用类整理
QApplication
QWidget*QApplication:
:
activeWindow()const
返回拥有键盘输入焦点的应用程序顶级窗口,或者如果没有应用程序窗口拥有焦点,返回0。
注意尽管可能没有focusWidget(),仍然有可能activeWindow(),例如如果在窗口中没有窗口部件接收键盘事件。
voidQApplication:
:
addLibraryPath(constQString&path)[静态]
把path添加到库路径列表的末尾。
如果path为空或者已经在路径列表中,路径列表不会被改变。
默认路径列表包含一个单一的条目$QTDIR/plugins。
voidQApplication:
:
closeAllWindows()[槽]
关闭所有顶级窗口。
QDesktopWidget*QApplication:
:
desktop()[静态]
返回桌面窗口部件(也调用根窗口)。
桌面窗口部件对于获得屏幕大小很有用。
在桌面上绘制也是可能的。
我们建议不要假设可以在桌面上绘制,因为它不能在所有的操作系统上工作。
intQApplication:
:
exec()
进入主事件循环并且等待,直到exit()被调用或者主窗口部件被销毁,并且返回值被设置为exit()(如果通过quit(),exit()被调用,为0)。
需要调用这个函数来开始事件处理。
主事件循环从窗口系统中接收事件并且把它们分派给应用程序窗口部件。
voidQApplication:
:
exit(intretcode=0)[静态]
告诉应用程序退出,伴随一个返回代码
QFontQApplication:
:
font(constQWidget*w=0)[静态]
返回窗口部件w的默认字体,或者如果w为0,返回默认应用程序字体。
voidQApplication:
:
setColorSpec(intspec)[静态]
设置应用程序的颜色策略为spec。
颜色策略控制着当在一个显示颜色总数有限制的情况下运行应用程序如何分配颜色,例如8位/256色显示
voidQApplication:
:
setStyle(QStyle*style)[静态]
设置应用程序的图形用户界面风格为style。
风格对象的所有权被移交给QApplication,所以当应用程序退出时或者当新的风格被设置时QApplication会删除这个风格对象
QStyle*QApplication:
:
setStyle(constQString&style)[静态]
这是一个重载成员函数,提供了方便。
它的行为基本上和上面的函数相同。
使用QStyleFactory来为style创建一个QStyle对象。
这个字符串必须是QStyleFactory:
:
keys()之一,通常是“windows”、“motif”、“cde”、“motifplus”、“platinum”、“sgi”和“compact”。
根据平台,“windowsxp”、“aqua”或“macintosh”也是可以用的。
如果一个未知的style被传递,返回0。
QStyle&QApplication:
:
style()[静态]
返回应用程序的风格对象。
QWidget
QWidget类是所有用户界面对象的基类。
窗口部件是用户界面的一个原子:
它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。
每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。
一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。
QDialog是最普通的顶级窗口。
不被嵌入到一个父窗口部件的窗口部件被叫做顶级窗口部件。
通常情况下,顶级窗口部件是有框架和标题栏的窗口(尽管如果使用了一定的窗口部件标记,创建顶级窗口部件时也可能没有这些装饰。
)在Qt中,QMainWindow和和不同的QDialog的子类是最普通的顶级窗口。
一个没有父窗口部件的窗口部件一直是顶级窗口部件。
非顶级窗口部件是子窗口部件。
它们是它们的父窗口部件中的子窗口。
你通常不能在视觉角度从它们的父窗口部件中辨别一个子窗口部件。
在Qt中的绝大多数其它窗口部件仅仅作为子窗口部件才是有用的。
(当然把一个按钮作为或者叫做顶级窗口部件也是可能的,但绝大多数人喜欢把他们的按钮放到其它按钮当中,比如QDialog。
)
QWidget有很多成员函数,但是它们中的一些有少量的直接功能:
例如,QWidget有一个字体属性,但是它自己从来不用。
有很多继承它的子类提供了实际的功能,比如QPushButton、QListBox和QTabDialog等等。
每一个窗口部件构造函数接受两个或三个标准参数:
QWidget*parent=0是新窗口部件的父窗口部件。
如果为0(默认),新的窗口部件将是一个顶级窗口部件。
如果不是,它将会使parent的一个孩子,并且被parent的几何形状所强迫(除非你指定WType_TopLevel作为窗口部件标记)。
constchar*name=0是新窗口部件的窗口部件名称。
你可以使用name()来访问它。
窗口部件名称很少被程序员用到,但是对于图形用户界面构造程序,比如Qt设计器,是相当重要的(你可以在Qt设计器中命名一个窗口部件,并且在你的代码中使用这个名字来连接它)。
dumpObjectTree()调试函数也使用它。
WFlagsf=0(在可用的情况下)设置窗口部件标记,默认设置对于几乎所有窗口部件都是适用的,但是,举例来说,一个没有窗口系统框架的顶级窗口部件,你必须使用特定的标记。
tictac/实例程序是一个简单窗口部件的好实例。
它包含了一些的事件处理器(就像所有窗口部件所必须的那样)、一些被指定给它的定制处理(就像所有有用的窗口部件做的那样)并且还有一些孩子和联机。
它所做的每一件事都响应对应的一个事件:
这是到目前为止设计图形用户界面的最普通的方式。
你自己将需要为你的窗口部件提供内容,但是这里是一些简要的运行事件,从最普通的开始:
paintEvent()-只要窗口部件需要被重绘就被调用。
每个要显示输出的窗口部件必须实现它并且不在paintEvent()之外在屏幕上绘制是明智的。
resizeEvent()-当窗口部件被重新定义大小时被调用。
mousePressEvent()-当鼠标键被按下时被调用。
有六个鼠标相关事件,但是鼠标按下和鼠标释放事件是到目前为止最重要的。
当鼠标在窗口部件内或者当它使用grabMouse()来捕获鼠标时,它接收鼠标按下事件。
mouseReleaseEvent()-当鼠标键被释放时被调用。
当窗口部件已经接收相应的鼠标按下事件时,它接收鼠标释放事件。
这也就是说如果用户在你的窗口部件内按下鼠标,然后拖着鼠标到其它某个地方,然后释放,你的窗口部件接收这个释放事件。
这里有一个例外:
如果出现在弹出菜单中,当鼠标键被按下时,这个弹出菜单立即会偷掉这个鼠标事件。
mouseDoubleClickEvent()-和它看起来也许不太一样。
如果用户双击,窗口部件接收一个鼠标按下事件(如果他们没有拿牢鼠标,也许会出现一个或两个鼠标移动事件)、一个鼠标释放事件并且最终是这个事件。
直到你看到第二次点击是否到来之前,不能从一个双击中辨别一个点击。
(这是为什么绝大多数图形用户界面图书建议双击是单击的一个扩展,而不是一个不同行为的触发的一个原因。
)
如果你的窗口部件仅仅包含子窗口部件,你也许不需要实现任何一个事件处理器。
如果你想检测在子窗口部件中的鼠标点击,请在父窗口部件的mousePressEvent()中调用子窗口部件的hasMouse()函数。
接收键盘的窗口部件需要重新实现一些更多的事件处理器:
keyPressEvent()-只要键被按下和当键已经被按下足够长的时间可以自动重复了就被调用。
注意如果Tab和Shift+Tab键被用在焦点变换机制中,它们仅仅被传递给窗口部件。
为了强迫那些键被你的窗口部件处理,你必须重新实现QWidget:
:
event()。
focusInEvent()-当窗口部件获得键盘焦点(假设你已经调用setFocusPolicy())时被调用。
写得好的窗口部件意味着它们能按照一种清晰但谨慎的方式来获得键盘焦点。
focusOutEvent()-当窗口部件失去键盘焦点时被调用。
一些窗口部件也许需要实现一些不太普通的事件处理器:
mouseMoveEvent()-只要当鼠标键被按下时鼠标移动就会被调用。
举例来说,对于拖动,这个很有用。
如果你调用setMouseTracking(TRUE),尽管没有鼠标键被按下,你也会获得鼠标移动事件。
(注意这个使用鼠标跟踪的应用程序在低下的X连接下不是很有用。
)(也可以参考拖放信息。
)
keyReleaseEvent()-只要键被释放和当如果这个键是自动重复的并且被按下一段时间时就被调用。
在这种情况下窗口部件接收一个键释放事件并且对于每一个重复立即有一个键按下事件。
注意如果Tab和Shift+Tab键被用在焦点变换机制中,它们仅仅被传递给窗口部件。
为了强迫那些键被你的窗口部件处理,你必须重新实现QWidget:
:
event()。
wheelEvent()--当窗口部件拥有焦点时,只要用户转动鼠标滚轮就被调用。
enterEvent()-当鼠标进入这个窗口部件屏幕空间时被调用。
(这不包括被这个窗口部件的子窗口部件所拥有的屏幕空间。
)
leaveEvent()-当鼠标离开这个窗口部件的屏幕空间时被调用。
moveEvent()-当窗口部件相对于它的父窗口部件已经被移动时被调用。
closeEvent()-当用户关闭窗口部件时(或这当close()被调用时)被调用。
这里还有一些不太明显的事件。
它们在中被列出并且你需要重新实现event()来处理它们。
event()的默认实现处理Tab和Shift+Tab(移动键盘焦点)并且其它绝大多数事件给上面提到的一个或更多的特定处理器。
当实现一个窗口部件时,还有一些更多的事情要考虑。
在构造函数中,在你可能收到一个事件的任何机会之前,请确认尽早地设置你的成员变量。
重新实现sizeHint()在绝大多数情况下都是很有用的并且使用setSizePolicy(),来设置正确的大小策略,这样你的同事可以更容易地设置布局管理器。
一个大小策略可以让你为布局管理器提供好的默认情况,这样其它窗口部件可以很容易地包含和管理你的窗口部件。
sizeHint()为这个窗口部件说明一个“好的”大小。
如果你的窗口部件是一个顶级窗口部件,setCaption()和setIcon()分别设置标题栏和图标。
QWidget:
:
QWidget(QWidget*parent=0,constchar*name=0,WFlagsf=0)
构造一个是parent的孩子、名称为name并且窗口部件标记为f的窗口部件。
如果parent为0,新的窗口部件变为顶级窗口。
如果parent是另一个窗口部件,这个窗口部件变为parent中的一个子窗口。
当它的parent被删除时,新的窗口部件被删除。
name被发送给QObject的构造函数。
voidQWidget:
:
adjustSize()[虚]
调整窗口部件的大小来适合它的内容。
QSizeQWidget:
:
baseSize()const
返回窗口部件的继承大小。
详细情况请参考“baseSize”属性。
QWidget*QWidget:
:
childAt(intx,inty,boolincludeThis=FALSE)const
返回在窗口部件自己的坐标系统中像素位置(x,y)处的可视的子窗口部件。
boolQWidget:
:
close()[槽]
关闭这个窗口部件。
如果窗口部件被关闭,返回真,否则返回假。
voidQWidget:
:
drawText(intx,inty,constQString&str)
在位置(x,y)绘制字符串str
QFontQWidget:
:
font()const
返回这个窗口部件的字体当前设置。
voidQWidget:
:
fontChange(constQFont&oldFont)[虚保护]
这个虚函数是从setFont()中被调用的。
oldFont是以前的字体,你可以通过font()获得新的字体。
QFontInfoQWidget:
:
fontInfo()const
返回这个窗口部件当前字体的字体信息。
等于QFontInto(widget->font())。
QSizeQWidget:
:
frameSize()const
返回包含任何窗口框架的窗口部件的大小。
详细情况请参考“frameSize”属性。
intQWidget:
:
height()const
返回不包括窗口框架的窗口部件的高度。
详细情况请参考“height”属性。
constQPixmap*QWidget:
:
icon()const
返回窗口部件图标像素映射。
详细情况请参考“icon”属性
QStringQWidget:
:
iconText()const
返回窗口部件图标文本。
详细情况请参考“iconText”属性。
boolQWidget:
:
isActiveWindow()const
如果这个窗口部件是激活窗口或者它的一个孩子,返回真,否则返回假。
详细情况请参考“isActiveWindow”属性。
boolQWidget:
:
isDesktop()const
如果这个窗口部件是一个桌面窗口部件,比如,它代表着桌面,返回真,否则返回假。
详细情况请参考“isDesktop”属性。
boolQWidget:
:
isDialog()const
如果这个窗口部件是一个对话框窗口部件,返回真,否则返回假。
详细情况请参考“isDialog”属性。
boolQWidget:
:
isEnabled()const
如果这个窗口部件是生效的,返回真,否则返回假。
详细情况请参考“enabled”属性。
boolQWidget:
:
isEnabledTo(QWidget*ancestor)const
如果ancestor生效,这个窗口部件能够变为生效的,返回真,否则返回假。
boolQWidget:
:
isMaximized()const
如果窗口部件是被最大化的顶级窗口部件,返回真,否则返回假。
QLayout*QWidget:
:
layout()const
返回管理窗口部件孩子的几何形状的布局引擎的指针。
voidQWidget:
:
setFixedHeight(inth)
设置这个窗口部件的最小高度和最大高度都为h,而不改变宽度。
为了方便而提供。
也可以参考sizeHint、minimumSize、maximumSize和setFixedSize()。
voidQWidget:
:
setFixedSize(constQSize&s)
设置这个窗口部件的最小大小和最大大小都为s,这样就可以防止它变大或者变小。
voidQWidget:
:
setFixedWidth(intw)
设置这个窗口部件的最小宽度和最大宽度都为h,而不改变高度。
为了方便而提供。
voidQWidget:
:
setFont(constQFont&)[虚]
设置这个窗口部件的字体当前设置。
详细情况请参考“font”属性。
voidQWidget:
:
setIcon(constQPixmap&)[虚槽]
设置这个窗口部件图标像素映射。
详细情况请参考“icon”属性。
voidQWidget:
:
setIconText(constQString&)[虚槽]
设置这个窗口部件图标文本。
详细情况请参考“iconText”属性
voidQWidget:
:
setMaximumHeight(intmaxh)
设置这个窗口部件的最大高度为maxh。
详细情况请参考“maximumHeight”属性。
voidQWidget:
:
setMaximumSize(constQSize&)
设置这个窗口部件的最大大小。
详细情况请参考“maximumSize”属性。
voidQWidget:
:
setMaximumSize(intmaxw,intmaxh)[虚]
这是一个重载成员函数,提供了方便。
它的行为基本上和上面的函数相同。
这个函数相当于setMaximumSize(QSize(maxw,maxh))。
设置最大宽度为maxw,最大高度为maxh。
voidQWidget:
:
setMaximumWidth(intmaxw)
设置这个窗口部件的最大宽度为maxw。
详细情况请参考“maximumWidth”属性。
voidQWidget:
:
setMinimumHeight(intminh)
设置这个窗口部件的最小高度为minh。
详细情况请参考“minimumHeight”属性。
voidQWidget:
:
setMinimumSize(constQSize&)
设置这个窗口部件的最小大小。
详细情况请参考“minimumSize”属性。
voidQWidget:
:
setMinimumSize(intminw,intminh)[虚]
这是一个重载成员函数,提供了方便。
它的行为基本上和上面的函数相同。
这个函数相当于setMinimumSize(QSize(minw,minh))。
设置最小宽度为minw,最小高度为minh。
voidQWidget:
:
setMinimumWidth(intminw)
设置这个窗口部件的最小宽度为minw。
详细情况请参考“minimumWidth”属性。
voidQWidget:
:
setSizePolicy(QSizePolicy)[虚]
设置这个窗口部件的默认布局方式。
详细情况请参考“sizePolicy”属性。
voidQWidget:
:
setStyle(QStyle*style)
设置这个窗口部件的图形用户界面风格为style。
风格对象的所有权不能被转让。
如果没有风格被设置,这个窗口部件使用应用程序的风格QApplication:
:
style()替代它。
设置窗口部件的风格对于已经存在或未来的子窗口部件没有效果。
voidQWidget:
:
show()[虚槽]
显示这个窗口部件和它的子窗口部件。
Qthread
QThread类提供了与系统无关的线程。
QThread代表在程序中一个单独的线程控制,在多任务操作系统中,它和同一进程中的其它线程共享数据,但运行起来就像一个单独的程序一样。
它不是在main()中开始,QThread是在run()中开始运行的。
你继承run()并且在其中包含你的代码。
例如:
classMyThread:
publicQThread{
public:
virtualvoidrun();
};
voidMyThread:
:
run()
{
for(intcount=0;count<20;count++){
sleep
(1);
qDebug("Ping!
");
}
}
intmain()
{
MyThreada;
MyThreadb;
();
();
();
();
}
这将会开始两个线程,每个线程在屏幕上写20次“Ping!
”并且退出。
在main()的结尾调用wait()是必需的,因为main()的结束会终结整个程序,它会杀掉所有其它线程。
当每个MyThread运行到MyThread:
:
run()结尾时,它就结束运行,就好像一个应用程序离开main()时所做的一样。
QThread:
:
QThread()
构造一个新的线程。
这个线程将直到start()被调用的时候才开始运行。
Qt:
:
HANDLEQThread:
:
currentThread()[静态]
这返回当前执行的线程的线程句柄。
警告:
这个函数返回的句柄用于内部目的并且不应该在任何应用程序代码中使用它。
在Windows中,返回值是当前线程的假句柄,并且它不能用于数字比较。
voidQThread:
:
exit()[静态]
结束调用线程的执行并且唤醒任何等待它终止的线程。
boolQThread:
:
finished()const
如果线程完成,返回真,否则返回假。
voidQThread:
:
msleep(unsignedlongmsecs)[静态保护]
与系统无关的睡眠。
这将导致当前线程睡眠msecs毫秒。
voidQThread:
:
postEvent(QObject*receiver,QEvent*event)[静态]
提供一个从一个不是事件线程的线程发送一个事件到一个对象的方法。
voidQThread:
:
run()[纯虚保护]
这个方法是纯虚的,并且为了能够做有用的工作必须在继承类中被重新实现。
这个方法的返回将会结束线程的执行。
也可以参考wait()。
boolQThread:
:
running()const
如果线程正在运行,返回真,否则返回假。
voidQThread:
:
sleep(unsignedlongsecs)[静态保护]
与系统无关的睡眠。
这将导致当前线程睡眠secs秒。
voidQThread:
:
start()
通过调用run()(必须在QThread子类中重新实现来包含你的代码)开始这个线程的执行。
如果你试图开始一个已经运行的线程,这个调用将一直等待,直到这个线程完成,然后再重新开始这个线程。
voidQThread:
:
usleep(unsignedlongusecs)[静态保护]
与系统无关的睡眠。
这将导致当前线程睡眠usecs微秒。
boolQThread:
:
wait(unsignedlongtime=ULONG_MAX)
这将提供和POSIXpthread_join相似的功能。
一个线程调用了它将会一直阻塞,知道下述条件之一满足时继续:
Qtime
QTime类提供了时钟时间功能。
QTime对象包含时钟时间,比如从午夜开始的时、分、秒和毫秒数。
它可以从系统时钟中读取当前的时间并且度量时间的跨度。
它提供比较时间和操作时间的函数,比如加上一定的秒或毫秒。
QTime操作的是24小时时钟格式,它没有AM/PM概念。
它操作的是本地时间,它不知道有关时区或白天时间的概念。
QTime对象通常可以由明白地给定的时、分、秒和毫秒数字来创建,或者使用静态函数currentTime()让QTime对象包含系统时钟时间。
注意精确性取决于下面操作系统的精确性,不是所有的操作系统都有毫秒级精确度的。
hour()、minute()、second()和msec()函数提供了对时、分、秒和毫秒数字的访问。
toString()提供了文本格式的相同信息。
QTime提供了一整套的操作符来比较两个QTime对象,在这里小于表示早一些,大于表示晚一些。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QT 常用 整理
![提示](https://static.bdocx.com/images/bang_tan.gif)