欢迎来到天天文库
浏览记录
ID:20001787
大小:1.36 MB
页数:44页
时间:2018-10-08
《qt图形用户界面》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、图形用户界面QT第四章本章计划可视对象的返回值和数据<初级>鼠标,键盘,定时器等事件的捕捉一些事件的虚函数重载,信号从基类转发掌握QDialog,QTimer,QTime掌握QSettings,QSqlDatabase了解QtNetWork掌握QGraphicsView,QGraphicsScene掌握QGraphicsItem,QPixmap计算器里的关于窗口上面有2个按钮,确定和取消,QMainWindow怎么知道你按了哪一个呢?首先,那个是一个按钮组buttonBox,是QDialog组件里就关联好信号的。在信号和槽
2、编辑器里能看的到。我们可以看看QDialog的槽accept()和rejecct()起什么作用,看HELP文档可视对象的返回值和数据QDialog的槽accept()和rejecct()HELP文档里是这么解释的,看懂了吗?voidQDialog::accept() [virtualslot]Hidesthemodaldialogandsetstheresultcodeto Accepted.voidQDialog::reject() [virtualslot]Hidesthemodaldialogandsetsthere
3、sultcodeto Rejected.voidQDialog::accepted() [signal]Thissignalisemittedwhenthedialoghasbeenacceptedeitherbytheuserorbycallingaccept()ordone()withtheQDialog::Acceptedargument.QDialog的返回值跟据HELP文档,我们可以这样写代码鼠标,键盘,定时器等事件的捕捉事件在Qt里分很多种,比如鼠标,键盘,定时器,窗体扩大缩小,有鼠标飘过,有数值变化等等,任何
4、一个小动作,在GUI里都会触发某种事件。当事件产生时,怎么来进行处理呢?跟据C++的语言特性,虚函数重载可以解决这个问题,所有可以处理的事件,一定都是虚函数。现在我们来做一个close事件处理。close事件的捕捉还记得第一个例子吗,一个按钮一按就关闭窗口了。当然按右上角的X,也可以关闭,但有的窗口按了右上角的X会跳出一个框来。这个是通过重载关闭事件而处理出的一个框,怎么做呢?QMainWindow的close事件在哪?刚刚讲过,所有能处理的事件,一定是虚函数,那虚函数去哪找?去protected里找。现在我们要关闭的是Q
5、MainWindow,并且要它跳出那个框出来,怎么找相应事件呢?来查下HELP文档QMainWindow的close事件在哪?点不出来吧?为啥?因为QMainWindow没有,那怎么查?去找它的基类,它一定是从基类里继承了所有的事件。点进Qwidget这个基类以后,再点ProtectedFuntionsQMainWindow的close事件在哪?找到close事件了点进看去说明和例子Bydefault,theeventisacceptedandthewidgetisclosed.Youcanreimplementthisf
6、unctiontochangethewaythewidgetrespondstowindowcloserequests.Forexample,youcanpreventthewindowfromclosingbycallingignore()onallevents.你看不懂可以复制查google百度有道翻译就对了。要还在发呆,就是你的不对了。重载基类的虚函数的代码怎么写1.想想C++语法,派生类怎么去重载基类的虚函数把声明抄过来.cpp的重载代码怎么写?C语言就强调了,用谁的东西,就include谁的头文件一按X就重载了c
7、lose事件,在这里我们用QMessageBox速生成了一个小框,然后取它的返回值看你按了什么键,如果按的取消,据据QMainWindow的HELP文档用ignore()接口忽略close事件中文显示的处理#includeintmain(intargc,char*argv[]){QApplicationa(argc,argv);QTextCodec*codec=QTextCodec::codecForName("GB2312");QTextCodec::setCodecForLocale(codec
8、);QTextCodec::setCodecForCStrings(codec);QTextCodec::setCodecForTr(codec);MainWindoww;w.show();returna.exec();}一个窗口有多少种事件可以处理呢?看看HELP文档里的protected里有多少种事
此文档下载收益归作者所有