qt编程问题

qt编程问题,第1张

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

2、关联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自动关联。

注意:Qt5以后版本默认也包含了所有需要的工具,不存在这里的情况,直接下载安装即可使用!

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

4、补充:如果要给生成的exe可执行文件更换一个自定义图标,可以这样做:

(1)在项目中添加一个myapp.rc(名字可以随意)文件,然后在里面输入下面一行代码:IDI_ICON1               ICON    DISCARDABLE     "appico.ico",这里的appico.ico就是自己的.ico图标文件;

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

(3)重新编译

如果需要更换新的图标,建议先清理项目的编译文件,再重新编译,否则可能会报错,如下。

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

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

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

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

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

6、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>

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

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改为中文。

8、向工具栏添加图标:可以将动作编辑器中的动作拖动到工具栏中作为快捷图标使用;可以在工具栏上点击鼠标右键来添加分隔符。

9、使用垂直布局管理器(QVBoxLayout)布局:部件自动垂直排列,并且进行水平拉伸,无论如何改变布局管理器的大小,按钮总是水平方向变化。

使用垂直分裂器(QSplitter)布局:部件自动垂直排列,但进行放大可以发现,使用分裂器按钮纵向是可以变大的,这就是分裂器和布局管理器的重要区别。

10、快速从头文件声明处创建函数定义的方法:到mainwindow.h文件中,将鼠标定位到showFindText()函数上,然后点击右键,在d出的菜单中选择“重构”→“在mainwindow.cpp添加声明”,或者直接使用Alt+Enter快捷键,这样就会直接在mainwindow.cpp文件中添加函数定义,并跳转到该函数处。

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

第一种,在函数声明的地方直接跳转到函数定义的地方。

例如我们在mainwindow.h文件的loadFile()函数上点击鼠标右键,在d出的菜单上选择“在方法声明/定义之间切换”,这时就会自动跳转到mainwindow.cpp文件中该函数的定义处。如下图所示。当然还可以反向使用。

第二种,快速查看一个文件里的所有函数。

可以在编辑器正上方的下拉框里查看正在编辑的文件中所有的函数的列表,点击一个函数就会跳转到指定位置。如下图所示。

第三种,使用类视图或者大纲视图。

在项目列表上面的下拉框中可以更改查看的内容,如果选择为类视图或者大纲,则会显示文件中所有的函数的列表。如下图所示。

第四种,使用查找功能查看函数的所有调用处。

在一个函数名上点击鼠标右键,然后选择“查找何处被使用”菜单,这时就会在下面的搜索结果栏中显示该函数所有的使用位置。我们可以通过点击一个位置来跳转到该位置。如下图所示。

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

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

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

14、关于随机数,在Qt中是使用qrand()和qsrand()两个函数实现的。在使用qrand()函数产生随机数之前,一般要使用qsrand()函数为其设置初值,如果不设置初值,那么每次运行程序,qrand()都会产生相同的一组随机数。为了每次运行程序时,都可以产生不同的随机数,我们要使用qsrand()设置一个不同的初值。

1、Linux下Qt Creator的配置

从Dash中找到Qt Creator,打开,打开后可以看到主界面,这个界面和Windows下基本一致(后面安装windows版本就清楚了),在前面的两篇文章中我已经分别编译了Linux下的X86平台和ARM平台的QT库,这部分就针对这个IDE进行相应的配置,是能够进行应用程序的开发。

在主界面中从菜单栏点击"工具"->"选项"->在左侧点击“构建和运行”界面如下图所示。

从图中可以看到,IDE并没有自动识别安装的QT,这是因为在缺乏系统环境变量的情况下,不知道程序安装到了什么地方,所以这里需要手动设置,手动设置很简单,只需要点击添加,分别添加编译的两个版本的QT安装文件中的qmake文件即可,注意是安装文件,并不是之前解压的源文件。

默认的安装路径为/usr/local/Trolltech这个文件夹下有两个文件夹,具体路径可以参见上图。

到这里就告诉IDE 安装QT的位置了,由于需要进行编译开发,接下来还需要指定编译器,点击“编译器”选项卡,如下图所示。

如图中所示,Qt Creator已经检测到X86的GCC,而我们要是做arm平台开发的话还需要指定用于arm开发的交叉工具链,我的安装路径为/usr/local/arm/4.3.2/bin/需要指定g++文件,如图中所示。配置完成后,点击“应用”。

QT和编译器指定完成后就需要进行下一步配置了,就是对这些工具进行组合,点击“构建套件(kit)”选项卡,如下图所示。

如上图所示,这里所做的设置也很简单,相当于是设定几种方案,指定设备类型、所用的编译器版本以及QT版本,我这里配置桌面和ARM两项,分别对应在PC和开发板两个平台。

到这里,基本配置就完成了。

2、使用Qt Creator进行初步开发

下面新建一个项目,点击菜单 ”文件“->”新建“,如下图所示,选择应用程序-Qt Gui应用

接下来填写项目名称和选择保存位置,点击”下一步“选择构建套件,这里用于选择使用的构建套件,即上文配置的,按照上文配置我这里就有两个套件,桌面和ARM,这个地方后面是可以更改的,因此我这里还是先选择桌面,下面有对应的Debug与Release这里保持默认。接下来全部保持默认一直到完成。

工程新建完成后就可以看到工程目录即文件了,如下图所示。

第一个例程就不添加啥程序了,充分利用IDE设计的方便之处,拖拽几个控件运行示意一下吧,双击上图中的界面文件下的mianwindow.ui文件,接下来就能看到和VS下利用C#等开发非常类似的界面,可以从左侧选择一些控件,右下角可以针对具体的控件属性进行修改,如下图所示,拖出自己需要的控件,并进行简单修改。

我这里拖了几个作为示意,这部分弄好后,点击左下角的

直接运行,构建完成后就会d出刚刚设计的界面,如下图所示。

可以看到实际运行效果和编辑的情况由于字体等因素略有差异。接下来就要生成一个能够在开发板上运行的程序了,由于刚刚在新建项目的时候构建套件选择的是桌面,所以首先要对这点进行更改。如下图所示,点击 ”项目“--”添加构建套件“下方就会d出我刚刚设定的ARM,在arm的构建设置中可以使用默认配置,其他相关选项可以参考桌面选项更改。

需要说明的是在ARM的运行项目中,需要部署到远程运行,这里没有部署,因此在剪辑编辑进行构建的时候,就不能改直接运行了,点击锤子图标,进行构建,构建完成后可以在工程文件夹下,如下图所示,那么在ARM开发板上运行的程序就在test1-build-ARM-_____Debug文件夹下。

接下来把生成的可执行文件拷贝到开发板进行运行,我这里使用的是nfs挂载的方式,通过超级终端运行

./test1 –qws

运行程序,需要说明的是我使用的开发板是飞凌的OK6410,上面已经移植好了QTE 4.7.3,虽然我的版本是4.8.4但是运行没有问题,其他平台需要先移植QT,这个暂时不在本文的讨论范围之内,运行效果如下:

到这里,用于开发板运行的第一个小程序就跑起来了。

3、Windows下Qt的安装

Linux下的安装和配置搞定了,Windows下的就非常简单了,Windows下有针对VS2008/2010以及Mingw的版本,虽然我电脑里装了VS2010,这里还是决定安装Mingw的版本,首先下载相关文件,下载地址:

http://qt-project.org/downloads

需要说明的是,早期有SDK安装包的,现在都是单独的了,所以需要分别下载

qt-win-opensource-4.8.4-mingw.exe

qt-creator-windows-opensource-2.6.1.exe

MinGW-gcc440_1.zip 下载地址http://get.qt.nokia.com/misc/MinGW-gcc440_1.zip

如果想在VS中使用可以下载

qt-vs-addin-1.1.11.exe

qt-win-opensource-4.8.4-vs2010.exe

由于Mingw并没有被qt-win-opensource-4.8.4-mingw.exe安装包集成,所以需要先安装mingw,安装很简单,直接解压到指定的目录就行,我的路径d:/mingw。

接下来安装qt-win-opensource-4.8.4-mingw.exe,按照过程中会要求指定mingw,指定刚刚的解压目录即可。

然后安装qt-creator-windows-opensource-2.6.1.exe,这个不用多说了。

安装完成后打开Qt Creator,通Linux下的设置一样,打开设置,这里只需要指定mingw的目录即可,同样指定到g++工具,如下图所示,可以看到两者界面几乎一样,下面的 *** 作就基本一致了,只是这里没有配置用于arm平台的工具链。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11123823.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存