Qt基础应用篇

Qt的快捷键

Ctrl+数字1~7可以来切换模式(Qt Creator左方的欢迎模式、编辑模式等)

Alt+数字1~7可以来切换输出窗格(Qt Creator下方的问题、搜索结果等)

Ctrl+Tab可以在多个打开的文档键切换。

Ctrl +M可以在查看帮助时为某一页面添加书签,或帮助下方的添加书签按钮。

(在第二章中问题中也有介绍)在程序运行之后,再按Alt +4即可显示编译输出的信息。

Ctrl 和“+或-号键”来放大或减小字体

Ctrl和”0“可以恢复默认字体。

Ctrl +R可以运行程序。

将鼠标定位到某个类或函数上,按下F1键就可以在编辑器右边快速打开其帮助文档。

                             

                                               第一章 Qt简介

问题:

1.如果在Qt Creator的编辑欢迎模式中,如果实例中的程序页面是空的,是因为Qt Creator还没和Qt库进行关联。

2.最好不要在示例程序中直接进行修改,要复制示例程序的方法:打开示例程序后,在左上方的边栏中选择“文件系统”,在项目目录的文件列表中最上面embeddeddialogs上右击,在弹出的菜单中选择“在EXplorer中显示”,这样就会在新窗口中打开该项目,可以先将该项目进行备份进行编辑。

3.“大纲视图”可以使用它显示该文件中的所有类、函数和变量,并且可以快速定位。

4.Qt4.8.5中包含Qt助手、Qt设计师、Qt演示程序与示例、Qt语言家。

Qt Creater是一个跨平台的、完整的Qt集成开发环境,包括了高级C++代码编辑器、项目和生成管理工具、集成的上下文相关的帮助系统、图形化调试器、代码管理和浏览工具。

自己Qt的学习之路是从《Qt Creater快速入门》开始的,接下来就作些介绍吧。

需要下载的软件(除了下面的一些内容,这些软件都可以到www.qter.org下载)

1.  Qt使用4.8.5版本

地址:http://download.qt-project.org/archive/qt/4.8/4.8.5/

下载的文件:qt-win-opensource-4.8.5-mingw.exe

2.  Qt Creater使用2.8.0版本

地址:http://download.qt-project.org/official_releases/qtcreator/2.8/2.8.0/

下载的文件:qt-creator-windows-opensource-2.8.0.exe

3.  windows上的GNU工具集(用其开发的程序不需要额外的第三方DLL支持就可以直接在windows下运行)

下载地址:www.mingw.org 

下载的文件:MinGW-gcc440_1.zip

4.  下载的文件:qtcreator-gdb-7.4-MINGW32_NT-6.1-i686.tar

安装Qt的编译环境

上述软件中1和2可以不分顺序进行安装(2中的qt-creator-windows-opensource-2.8.0.exe可以采取默认安装,1中qt-win-opensource-4.8.5-mingw.exe的在安装中需注意一点,在Find installed MinGW时要选择把4解压到Qt安装目录下的C:\Qt\mingw),至于4中的qtcreator-gdb-7.4-MINGW32_NT-6.1-i686.tar解压后放到Qt文件中即可完成安装。

配置Qt

在 工具》选项 中,过滤器下选择 构建和运行 ,

1.在编译器下添加MinGW ,编译器路径选 C:\Qt\mingw\bin\gcc.exe 。

2.在Qt版本下添加Qt4.8.5,qmake路径选择 C:\Qt\4.8.5\bin\qmake。

3.在构建套件下添加Desktop Qt 4.8.5(默认),编译器选择 MinGW ,调试器选择编辑

C:\Qt\qtcreator-gdb-7.4-MINGW32_NT-6.1-i686\gdb-i686-pc-mingw32.exe Qt版本选Qt 4.8.5(4.8.5)即可。

                                            第二章 简单的Hello World程序

问题:

1.在程序运行之后,再按Alt +4即可显示编译输出的信息。

2.为了使程序可以脱离编译环境运行,可以通过设置环境变量来改变。方法是右键”我的电脑“,左键单击”高级系统设置“,左键单击”环境变量“,在系统变量中找到Path,单击编辑,在最后添加”;C:\Qt\4.8.5\bin”。

3.若程序中使用了png以外格式的图片,在发布程序时就要将Qt安装目录下plugins目录中。

(注意:下面的4和5所需要的文件,可以在运行程序后看看缺什么就在C:\Qt\4.8.5\bin目录中复制即可)

4.不设置环境变量时,不发布直接运行Debug下的运行程序,复制程序到一个空文件中,直接运行会提示缺少其他文件,将C:\Qt\4.8.5\bin中的mingwm10.dll、libgcc_s_dw2-1.dll、QtCored4.dll和QtGuid4.dll复制到那个空文件中,运行即可。

5.程序的发布:不设置环境变量时,可以将C:\Qt\4.8.5\bin中将mingwm10.dll、libgcc_s_dw2-1.dll、QtCore4.dll和QtGui4.dll这4个文件复制到通过Release下运行构建的应用程序的文件中。

6.补全代码:由于Ctrl+空格强制代码补全会跟使用的输入法的快捷键冲突,我们可以直接输入setCodecForTr中首字母加其中的大写字母如sCFT,按下Enter即可键入。

新建Qt Gui应用

第一步: 文件》新建文件或项目》Qt Gui应用》 选择。

第二步:在“项目介绍和位置”中输入名称,在浏览中选择项目路径(注意:项目路径中不能有中文),单击下一步。

第三步:选择构建套件,这里采用默认,点击下一步。

第四步:在类信息中》填写类名HelloDialog》选择QDialog》点击下一步。

第五步:设置项目管理,这里可以设置版本控制系统,这个项目用不到,就单击完成就好。

第六步:在文件系统中》左键双击hellodialog.ui即可进入设计模式,在设计模式中检索Label,将其拉至主设计区,运行即可。

设置应用程序图标

第七步:在网上下载.ico文件。

第八步:创建文本文档,并在中输入

IDI_ICON1      ICON    DISCARDABLE   ”myico.ico“并另存为 ”myico.rc”文件名。

第九步:在项目文件中,在最后一行添加如下代码

RC_FILE   +=myico.rc

第十步,运行程序即可,此时图标已经改变。

纯代码编写程序和命令行编译

第一步,新建空项目,选择“其他项目”》空的Qt项目》点击下一步即可。

第二步,往项目中添加main.cpp文件。然后在文件和类中,选择C++Source File,名称设置位main.cpp,后面的选项保持默认即可。

main.cpp中的内容如下:

#include<QApplication>
#include<QDialog>
#include<QLabel>
int main(int argc,char *argv[])
{
    QApplication a(argc,argv);
    QDialog w;
    QLabel label(&w);
    label.setText("Hello World! 你好 Qt!");
    w.show();
    return a.exec();
}

注意:这时标签中显示的中文字符无法正常显示。

第三步,如果要显示中文,可更改上述main.cpp如下:

#include<QApplication>
#include<QDialog>
#include<QLabel>
#include<QTextCodec>   //显示中文要添加的内容
int main(int argc,char *argv[])
{
    QApplication a(argc,argv);
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));  //添加的内容
    QDialog w;
    QLabel label(&w);
    label.setText(QObject::tr("Hello World! 你好 Qt!"));  //更改了部分内容
    w.show();
    return a.exec();
}

注意:setCodecForTr()函数最好的位置就是像上述程序这样。

第四步:设置窗口的大小。

#include<QApplication>
#include<QDialog>
#include<QLabel>
#include<QTextCodec>   //
int main(int argc,char *argv[])
{
    QApplication a(argc,argv);
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));  //
    QDialog w;
    w.resize(400,300);      //设置窗口大小,设置对话框的宽和高
    QLabel label(&w);
    label.move(120,120);   //设置窗口大小,设置便签字体距对话框左边和上方的距离
    label.setText(QObject::tr("Hello World! 你好 Qt!"));  //
    w.show();
    return a.exec();
}

注意:上面的宽和高的单位是像素。

在命令行编译程序

第一步:新建工程文件,新建文本文档,将main.cpp中的而程序复制来,另存为main.cpp,保存时要将编码选择为UTF-8,否则中文无法显示。

第二步,打开Qt安装目录下的命令提示符Qt 4.8.5 Command Prompt,此时默认路径为Qt4.8.5\的安装位置,可以使用cd命令改变路径。

第三步,输入命令 cd 跳转到创建的工程文件中。

第四步,输入“qmake –project”命令,生成项目文件。

第五步,输入qmake命令来生成用于编译的Makefile文件、debug目录和release目录。

第六步,输入make编译完成后会在debug目录中出现exe文件。

注意:上面使用的qmake是Qt提供的一个编译工具,它可以生成与平台无关的.pro文件。

make文件就是通过读入Makefile文件的内容来执行编译工作的,用make命令时会为每一个源文件生成对应的.o目标文件。

第七步,用cd 命令跳转到debug目录下,然后再输入带exe后缀的文件名,按下回车就会运行该程序了。

 

时间: 2024-10-08 18:17:43

Qt基础应用篇的相关文章

Linux及Arm-Linux程序开发笔记(零基础入门篇)

Linux及Arm-Linux程序开发笔记(零基础入门篇)  作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer/archive/2011/05/05/2037449.html 目录 一.Arm-Linux程序开发平台简要介绍... 3 1.1程序开发所需系统及开发语言... 3 1.2系统平台搭建方式... 4 二.Linux开发平台搭建... 5 2.1安装虚拟工作站... 5 2.2安装Linux虚拟

Linux 初探 (基础认知篇)

linux 初探 (基础认知篇) 什么是linux? Linux是开源的类Unix系统,单纯的术语Linux来说其实仅仅指由林纳斯.托瓦兹开发并于1991年发布的一款存在于内核空间的操作系统内核(kernel). 为什么会开发要开发内核呢? 要从应用程序是如何在计算机上跑起来谈起,早期的应用程序需要了解CPU指令集利用汇编等语言进行开发.CPU的常见指令集架构:x86.x64(早期称其为amd64)兼容x86.m68000(m68k).arm.power.power pc(ppc,桌面级powe

Linux新手入门书籍推荐 鸟哥的linux私房菜-基础学习篇

这本书写的不错.赞~\(≧▽≦)/~ 2017-02-24 下午,我开始在Linux下写第一个.c程序,在终端打印hello world.gcc 源代码文件之后,输出可执行文件,但是 当我输入文件名执行它的时候,却提示我 无法找到命令.于是我找百度,查资料,花了半个小时,终于找到解决方法了, 输入"./filename"即可.... 2017-02-25 我看<基础学习篇>这本书,在P158页下面的例题讲解中找到了昨天下午异常的解析.我就很是感慨,心想:要是早看这本书,半个

基于C/S架构的3D对战网络游戏C++框架 _03客户端详细设计与OpenGL、Qt基础

本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): 1.实现基本通信框架,包括对游戏的需求分析.设计及开发环境和通信框架的搭建: 2.实现网络底层操作,包括创建线程池.序列化网络包等: 3.实战演练,实现类似于CS反恐精英的3D对战网络游戏: 技术要点:C++面向对象思想.网络编程.Qt界面开发.Qt控件知识.Boost智能指针.STL算法.STL.

《nodejs+gulp+webpack基础实战篇》课程笔记(四)-- 实战演练

一.用gulp 构建前端页面(1)---静态构建 npm install gulp-template --save-dev 通过这个插件,我们可以像写后台模板(譬如PHP)一样写前端页面.我们首先学习一下写法. 现在我们创建一个新任务:创建一个裸的index.html文件,然后在body里面写上 ,我的年龄是:<%= age %> 下载好gulp-template,我们引用并配置 var gulp_tpl = require("gulp-template"); gp.tas

[Qt解错篇]报错:error: undefined reference to vtable for ClassName

一.问题描述: 编译工程时报错:error: undefined reference to vtable for ClassName,如图示: 二.问题分析: 造成这种错误的原因很多,甚至在纯C++编程过程中也可能出现.下面根据自己情况,具体问题具体分析. 原因:在原先没有Q_OBJECT关键字的工程中添加了该关键字,但是没有执行qmake,直接编译导致出现该错误. 三.例子: 原先工程的类建立: class CAppConfig { public: CAppConfig(void); CApp

C#基础知识篇(五)-----------C#笔记

一.值类型和引用类型 1>值类型和引用类型将我们学过的数据类型划分成了两部分. 划分的依据是不同类型的数据在内存中(堆栈)存储的结构不同. 2>值类型:所有的数值类型:long int short byte ulong uint ushort sbyte decimal duoble float char bool 枚举 结构 3>引用类型:string,arry(数组),类(class) 4>不管是值类型还是引用类型赋值都是将数据copy一份将副本赋给变量,不同的是值类型拷贝的是

C#基础知识篇(二)-----------C#笔记

1.关系运算符(比较运算符) 1.关系运算符有哪些? >,< ==,!= >=,<= 2.关系运算符的作用? 用于比较两个事物之间的关系. 3.什么叫关系表达式? 由关系运算符连接起来的式子叫关系表达式. 注意:所有的关系表达式最终都能计算成一个bool类型的值. 2.逻辑运算符 1.逻辑表达式有哪些? 逻辑与:&& ,逻辑或:||  ,逻辑非:!(又叫取反) 2.逻辑运算 语法:表达式1 逻辑运算符  表达式2 逻辑运算符连接的两个表达式,要最终能求解成一个boo

SQLAlchemy 教程 —— 基础入门篇

SQLAlchemy 教程 -- 基础入门篇 一.课程简介 1.1 实验内容 本课程带领大家使用 SQLAlchemy 连接 MySQL 数据库,创建一个博客应用所需要的数据表,并介绍了使用 SQLAlchemy 进行简单了 CURD 操作及使用 Faker 生成测试数据. 1.2课程知识点 学会用 SQLALchemy 连接数据库(MySQL, SQLite, PostgreSQL), 创建数据表: 掌握表数据之间一对一,一对多及多对多的关系并能转化为对应 SQLAlchemy 描述: 掌握使