Qt快速入门学习笔记(基础篇)

本文基于Qter开源社区论坛版主yafeilinux编写的《Qt快速入门系列教程目录》,网址:http://bbs.qter.org/forum.php?mod=viewthread&tid=193。参考书为基于该系列教程《Qt Creator快速入门》《Qt及Qt Quick开发实战精解》php

一、关联Qt库。若是是分别安装的Qt Creator和Qt库,而不是安装集成Qt Creator和Qt库的SDK,则须要手动关联Qt库。打开工具→选项菜单,而后选择“构建和运行”一项,再进入Qt版本选项卡。点击右上角的“添加”按钮,而后会让选择qmake.exe文件,咱们在Qt(不是Qt Creator)安装目录的bin目录中找到该文件并打开。如今已经默认生成了版本信息,咱们点击肯定按钮便可。linux

二、关联MinGW。在安装Qt 4.8.6及之后的Qt 4版本时,应该按照安装时的提示来下载相应版本的MinGW,否则编译程序没法运行。若是是Qt4版本,须要使用GCC 4.4,也就是MinGW须要是4.4版本的,其余新的版本均不可用。在Qt 4.8版本,须要下载并指定GDB才能正常调试。下载完MinGW和GDB之后,将其解压到Qt的安装目录中,好比这里都解压到了C:\Qt目录中。打开工具→选项菜单,而后选择“构建和运行”一项,再进入工具链选项卡。点击右上角的“添加”按钮,而后会让选择mingw32-g++.exe文件,咱们在MinGW安装目录的bin目录中找到该文件并打开。关联GDB则进入调试器选项卡添加GDB相关exe文件。设计模式

  若是安装的是集成开发包QtSDK,则不须要手动关联Qt库、MinGW和GDB,由Qt自动关联。app

  注意:Qt5之后版本默认也包含了全部须要的工具,不存在这里的状况,直接下载安装便可使用!编辑器

三、在建立桌面版项目时,最好选中“使用影子构建”,这样编译生成的文件会和源码分别存放,以下图所示。编译完成后会发现多了一个helloworld-build-desktop-Qt_4_8_1__4_8_1____目录,里面存放的就是编译生成的文件。这就是前面建立项目讲到的 “使用影子构建” ,若是没有选中这个,那么生成的文件就会和源码在同一个目录里。函数

 

四、补充:若是要给生成的exe可执行文件更换一个自定义图标,能够这样作:
(1)在项目中添加一个myapp.rc(名字能够随意)文件,而后在里面输入下面一行代码:IDI_ICON1               ICON    DISCARDABLE     "appico.ico",这里的appico.ico就是本身的.ico图标文件;工具

(2)在.pro项目文件中添加下面一行代码:RC_FILE = myapp.rc,布局

(3)从新编译ui

    若是须要更换新的图标,建议先清理项目的编译文件,再从新编译,不然可能会报错,以下。this

“:-1: 错误:No rule to make target `..\helloworld\myapp.rc', needed by `debug/myapp_res.o'.  Stop.”

五、在建立主窗口MainWindow项目后,打开mainwindow.ui文件进入设计模式。在这里能够看到界面左上角的“在这里输入”,咱们能够在这里添加菜单。双击“在这里输入”,将其更改成“文件(&F)”,而后按下回车键,效果以下图所示。这里的&F代表将菜单的快捷键设置为了Alt+ F,能够看到,实际的显示效果中&符号是隐藏的。

 

一样的方法,咱们在文件菜单中添加“新建(&N)”子菜单,效果以下图所示。菜单后面的那个加号图标是用来建立下一级菜单的。

 

Qt中的一个菜单被看作是一个Action,咱们在下面的Action编辑器中能够看到刚才添加的“新建”菜单,以下图所示。

 

双击该条目,会弹出编辑动做对话框,这里能够进行各项设置,好比咱们能够设置菜单的快捷键,点击一下快捷键后面的行编辑器,而后按下键盘上的Ctrl + N,这样就能够将该菜单的快捷键设置为Ctrl + N。以下图所示。那么你们可能会问,既然该菜单的快捷键是这么设置的,那么前面设置的“新建(N)”中的N是什么呢?这个能够被称为加速键,就是只有当文件菜单处于激活(显示)状态时,按下N键才会执行新建菜单的功能。

 

六、Qt中可使用资源文件将各类类型的文件添加到最终生成的可执行文件中,这样就能够避免使用外部文件可能出现的一些问题。并且,在编译时Qt还会将资源文件进行压缩,咱们可能发现生成的可执行文件比咱们添加到其中的资源文件还要小。建立完资源文件后会自动打开该资源文件,这里须要先在下面添加前缀,就是点击添加按钮,而后选择前缀,默认的前缀是“/new/prefix1”,这个能够随意修改(不要出现中文字符),咱们这里由于要添加图片,因此修改成/myImages。而后再按下添加按钮来添加文件,这里最好将全部要用到的图片放到项目目录中。好比咱们这里在项目目录中新建了一个images文件夹,而后将须要的图标文件粘贴进去。添加完文件后,以下图所示。

 

当添加完资源后,必定要按下Ctrl + S来保存资源文件,否则在后面可能没法显示已经添加的资源。

对于添加的资源文件,在项目目录中能够看到,即myResources.qrc,使用写字板程序将其打开,能够发现它其实就是一个XML文档:
<RCC> 
    <qresourceprefix="/myImages">
       <file>images/filenew.png</file>
       <file>images/fileopen.png</file>
       <file>images/filesave.png</file>
       <file>images/filesaveas.png</file>
       <file>images/find.png</file>
    </qresource>
</RCC>

七、使用代码添加菜单时,在构造函数中添加以下代码:

QAction *openAction = new QAction(QString::fromUtf8("&Open"), this);// 建立新的动做 
QIcon icon(":/myImages/images/fileopen.png");// 添加图标 
openAction->setIcon(icon);
openAction->setShortcut(QString::fromUtf8("Ctrl+O"));// 设置快捷键
ui->menu_F->addAction(openAction);// 在文件菜单中设置新的打开动做
这里添加图标时,就是使用的资源文件中的图标。使用资源文件,须要在最开始使用冒号,而后添加前缀,后面是文件的路径。在代码中使用文件菜单,就是使用其objectName。你们如今能够运行程序查看效果,固然这里也能够将Open改成中文。
 
八、向工具栏添加图标:能够将动做编辑器中的动做拖动到工具栏中做为快捷图标使用;能够在工具栏上点击鼠标右键来添加分隔符。
九、使用垂直布局管理器(QVBoxLayout)布局:部件自动垂直排列,而且进行水平拉伸,不管如何改变布局管理器的大小,按钮老是水平方向变化。
  使用垂直分裂器(QSplitter)布局:部件自动垂直排列,但进行放大能够发现,使用分裂器按钮纵向是能够变大的,这就是分裂器和布局管理器的重要区别。
十、快速从头文件声明处建立函数定义的方法:到mainwindow.h文件中,将鼠标定位到showFindText()函数上,而后点击右键,在弹出的菜单中选择“重构”→“在mainwindow.cpp添加声明”,或者直接使用Alt+Enter快捷键,这样就会直接在mainwindow.cpp文件中添加函数定义,并跳转到该函数处。
 

十一、在QtCreator中有几种快速定位函数的方法:

第一种,在函数声明的地方直接跳转到函数定义的地方。
例如咱们在mainwindow.h文件的loadFile()函数上点击鼠标右键,在弹出的菜单上选择“在方法声明/定义之间切换”,这时就会自动跳转到mainwindow.cpp文件中该函数的定义处。以下图所示。固然还能够反向使用。
第二种,快速查看一个文件里的全部函数。
能够在编辑器正上方的下拉框里查看正在编辑的文件中全部的函数的列表,点击一个函数就会跳转到指定位置。以下图所示。
第三种,使用类视图或者大纲视图。
在项目列表上面的下拉框中能够更改查看的内容,若是选择为类视图或者大纲,则会显示文件中全部的函数的列表。以下图所示。
第四种,使用查找功能查看函数的全部调用处。 
在一个函数名上点击鼠标右键,而后选择“查找何处被使用”菜单,这时就会在下面的搜索结果栏中显示该函数全部的使用位置。咱们能够经过点击一个位置来跳转到该位置。以下图所示。
 

十二、在Action编辑器中,有两个属性toolTip和statusTip,分别为工具栏提示和状态栏提示,以下图

这时运行程序,当光标移动到新建动做上时,在下面的工具栏和状态栏将会出现设置的提示。以下图所示

1三、状态信息能够被分为三类:临时信息,如通常的statusTip提示信息,上面讲到的动做提示就是临时信息;正常信息,如显示页数和行号;永久信息,如显示版本号或者日期。可使用showMessage()函数来显示一个临时消息,它会出如今状态栏的最左边。通常用statusBar->addWidget()函数添加一个QLabel到状态栏上用于显示正常信息,它会生成到状态栏的最左边,可能会被临时消息所掩盖。若是要显示永久信息,要使用statusBar->addPermanentWidget()函数来添加一个如QLabel同样的能够显示信息的部件,它会生成在状态栏的最右端,不会被临时消息所掩盖。

1四、关于随机数,在Qt中是使用qrand()和qsrand()两个函数实现的。在使用qrand()函数产生随机数以前,通常要使用qsrand()函数为其设置初值,若是不设置初值,那么每次运行程序,qrand()都会产生相同的一组随机数。为了每次运行程序时,均可以产生不一样的随机数,咱们要使用qsrand()设置一个不一样的初值。

相关文章
相关标签/搜索