3操作一Qt Creator的安装和hello world程序的编写.docx
- 文档编号:9166960
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:23
- 大小:1.64MB
3操作一Qt Creator的安装和hello world程序的编写.docx
《3操作一Qt Creator的安装和hello world程序的编写.docx》由会员分享,可在线阅读,更多相关《3操作一Qt Creator的安装和hello world程序的编写.docx(23页珍藏版)》请在冰点文库上搜索。
3操作一QtCreator的安装和helloworld程序的编写
一、QtCreator的安装和helloworld程序的编写(原创)
声明:
本文原创于yafeilinux的XX博客,转载请注明出处。
我们这里讲述windows下的QtCreator,在linux下基本相同。
本文先讲述基本的下载、安装和最简单程序的编写,然后在附录里又讲解了两种其他的编写程序的方法。
1.首先到Qt的官方网站上下载QtCreator,这里我们下载windows版的。
下载地址:
QtSDKforWindows*(178Mb)
下载完成后,直接安装即可,安装过程中按默认设置即可。
2.运行QtCreator,首先弹出的是欢迎界面,这里可以打开其自带的各种演示程序。
3.我们用File->New菜单来新建工程。
4.这里我们选择Qt4GuiApplication。
5.下面输入工程名和要保存到的文件夹路径。
我们这里的工程名为helloworld。
6.这时软件自动添加基本的头文件,因为这个程序我们不需要其他的功能,所以直接点击Next。
7.我们将baseclass选为QDialog对话框类。
然后点击Next。
8.点击Finish,完成工程的建立。
9.我们可以看见工程中的所有文件都出现在列表中了。
我们可以直接按下下面的绿色的run按钮或者按下Ctrl+R快捷键运行程序。
10.程序运行会出现空白的对话框,如下图。
11.我们双击文件列表的dialog.ui文件,便出现了下面所示的图形界面编辑界面。
12.我们在右边的器件栏里找到Label标签器件
13.按着鼠标左键将其拖到设计窗口上,如下图。
14.我们双击它,并将其内容改为helloworld。
15.我们在右下角的属性栏里将字体大小由9改为15。
16.我们拖动标签一角的蓝点,将全部文字显示出来。
17.再次按下运行按钮,便会出现helloworld。
到这里helloworld程序便完成了。
QtCreator编译的程序,在其工程文件夹下会有一个debug文件夹,其中有程序的.exe可执行文件。
但QtCreator默认是用动态链接的,就是可执行程序在运行时需要相应的.dll文件。
我们点击生成的.exe文件,首先可能显示“没有找到mingwm10.dll,因此这个应用程序未能启动。
重新安装应用程序可能会修复此问题。
”表示缺少mingwm10.dll文件。
解决这个问题我们可以将相应的.dll文件放到系统中。
在QtCreator的安装目录的qt文件下的bin文件夹下(我安装在了D盘,所以路径是D:
\Qt\2009.04\qt\bin),可以找到所有的相关.dll文件。
在这里找到mingwm10.dll文件,将其复制到C:
\WINDOWS\system文件夹下,即可。
下面再提示缺少什么dll文件,都像这样解决就可以了。
附1:
用纯源码编写。
1.新建空的Qt4工程。
2.工程名为helloworld,并选择工程保存路径(提示:
路径中不能有中文)。
3.在新建好的工程中添加文件。
右击工程文件夹,弹出的菜单中选择AddNew。
4.选择普通文件。
点击Ok。
5.文件名为main.cpp,点击Next进入下一步。
6.这里自动将这个文件添加到了新建的工程中。
保持默认设置,点击完成。
7.在main.cpp文件中添加代码。
8.这时点击运行,程序执行了,但看不到效果,因为程序里什么也没做。
我们点击信息框右上角的红色方块,停止程序运行。
9.我们再更改代码。
添加一个对话框对象。
10.运行效果如下。
11.我们更改代码如下,在对话框上添加一个标签对象,并显示helloworld。
12.运行效果如下。
附2:
利用ui文件。
1.建立新的空工程,这里的工程名为hello,建立好工程后,添加新文件。
这里添加QtDesignerForm。
2.选择一个对话框做模板。
3.你可以更改文件名,我们这里使用默认设置。
4.在新建好的框口上添加一个标签,并更改文本为helloworld。
5.在工程文件夹上点击右键,弹出的菜单中选择第一项编译工程。
6.因为还没有写主函数,所以现在编译文件会出现错误,不过没关系,因为我们只是想编译一下ui文件。
7.点击
这个图标,去掉弹出的菜单中第二项前的对勾,显示隐藏的文件。
这时你就能看到ui文件对应的头文件了。
而如果去掉菜单中的第一项前的对勾,列表中的文件就会分类显示,如图
8.ui文件对应的.h文件默认为ui_dialog.h(例如form.ui对应ui_form.h)。
其中是设计器设计的窗口的对应代码。
我们这里的.h文件是最简单的,其类名为Ui_Dialog,可以看到其中有我们添加的标签对象。
9.在这个类里有一个setupUi函数,我们就是利用这个函数来使用设计好的窗口的。
10.我们添加main.cpp文件,并更改内容如下。
其中ui->setupUi(dd);一句就是将设计的窗口应用到新建的窗口对象上。
11.这时运行程序,效果如下。
在这篇文章中我们一共讲述了三种方法写helloworld程序,其实也就是两种,一种用设计器,一种全部用代码生成,其实他们是等效的。
因为我们已经看到,就算是设计器生成,其实也是写了一个对应的ui.h文件,只不过这个文件是自动生成的,不用我们自己写而已。
1、intQApplication:
:
exec()
进入主事件循环并且等待,直到exit()被调用或者主窗口部件被销毁,并且返回值被设置为exit()(如果通过quit(),exit()被调用,为0)。
需要调用这个函数来开始事件处理。
主事件循环从窗口系统中接收事件并且把它们分派给应用程序窗口部件。
2、voidQApplication:
:
exit(int retcode=0)[静态]
告诉应用程序退出,伴随一个返回代码。
在这个函数被调用之后,应用程序离开主事件循环并且从exec()调用之后返回。
exec()函数返回retcode。
根据习惯,为0的retcode意味着成功,并且任何非零的值意味着错误。
3、namespace
98年以后的c++语言提供一个全局的命名空间namespace,可以避免导致全局命名冲突问题。
举一个实例,请注意以下两个头文件:
//one.h
charfunc(char);
classString{...};
//somelib.h
classString{...};
如果按照上述方式定义,那么这两个头文件不可能包含在同一个程序中,因为String类会发生冲突。
所谓命名空间,是一种将程序库名称封装起来的方法,它就像在各个程序库中立起一道道围墙。
QtCode:
#defineQT_BEGIN_NAMESPACEnamespaceQT_NAMESPACE{
#defineQT_END_NAMESPACE}
4、QStringQString:
:
fromUtf8(const char * utf8,int len=-1)[静态]
返回从utf8的前len个字符解码得到的Unicode字符串,忽略utf8的其余字符。
如果len为-1,那么utf8的长度将被使用。
如果len大于chars的长度,那么utf8的长度将被使用。
QStringstr=QString:
:
fromUtf8("123456789",5);
//str=="12345"
QStringQApplication:
:
translate(const char * context,const char * sourceText,const char * comment=0,Encoding encoding=DefaultCodec)const
通过查询安装的消息文件,返回sourceText的翻译文本。
消息文件被搜索的顺序是从最近安装的开始到最先安装的。
QObject:
:
tr()和QObject:
:
trUtf8()提供了更方便的这种功能。
context通常是一个类名(例如,“MyDialog”)并且sourceText是英语文本或者一个短的标识文本,如果输出文本很长(就像帮助文本那样的)。
comment是消除歧义的注释,当相同的sourceText在同样的上下文情况下被用在不同的规则中。
默认情况下,它是零。
encoding表明字符串的8位编码方式。
关于上下文和注释的更多信息请参考QTranslator文档。
如果消息文件中没有包含context中sourceText的翻译,这个函数返回一个和sourceText相等的QString。
sourceText的编码方式由encoding指定,它默认为DefaultCodec。
5、voidQMetaObject:
:
connectSlotsByName( QObject * object ) [static]
Searchesrecursivelyforallchildobjectsofthegiven object,andconnectsmatchingsignalsfromthemtoslotsof object thatfollowthefollowingform:
voidon_
Let'sassumeourobjecthasachildobjectoftype QPushButton withthe objectname button1.Theslottocatchthebutton's clicked() signalwouldbe:
voidon_button1_clicked();
6、QEvent类是所有事件类的基类。
事件类包含事件参数。
Type QEvent:
:
type()const
Returnstheeventtype.
QEvent:
:
LanguageChange
89
Theapplicationtranslationchanged.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 3操作一Qt Creator的安装和hello world程序的编写 操作 Qt Creator 安装 hello world 程序 编写