C++框架

您所在的位置:网站首页 qt新建c++项目 C++框架

C++框架

2024-07-15 01:36:38| 来源: 网络整理| 查看: 265

C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节 2018年04月29日 • C/C++ •我要评论 1、Qt概述 1.1 什么是Qt 1.2 Qt的发展史 1.3 支持的平台 Qt的安装 2、 创建Qt项目 2.1 使用向导创建 2.2 手动创建 2.3 .pro文件 3、QtCreator常用快捷键 4、案例代码: 。。。。 ... C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节 1、Qt概述 1.1 什么是Qt

Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。

1.2 Qt的发展史

1991年 Qt最早由奇趣科技开发

1996年 进入商业领域,它也是目前流行的Linux桌面环境KDE的基础

2008年 奇趣科技被诺基亚公司收购,Qt称为诺基亚旗下的编程语言

2012年 Qt又被Digia公司收购

2014年4月 跨平台的集成开发环境Qt Creator3.1.0发布,同年5月20日配发了Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持。

当前Qt最新版本为 5.5.0

1.3 支持的平台

☆Windows – XP、Vista、Win7、Win8、Win2008、Win10

☆Uinux/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS、和其他很多X11平台

☆Macintosh – Mac OS X

☆Embedded – 有帧缓冲支持的嵌入式Linux平台,Windows CE

1.4 Qt版本

Qt按照不同的版本发行,分为商业版和开源版

●商业版

为商业软件提供开发,他们提供传统商业软件发行版,并且提供在商业有效期内的免费升级和技术支持服务。

●开源的LGPL版本:

为了开发自有而设计的开放源码软件,它提供了和商业版本同样的功能,在GNU通用公共许可下,它是免费的。

1.5 Qt的安装

下载地址官网:http://download.qt.io/archive/qt/

 

Linux Host Qt 5.5.0 for Linux 32-bit (535 MB)    (info) Qt 5.5.0 for Linux 64-bit (532 MB)    (info) Qt 5.5.0 for Android (Linux 64-bit, 605 MB)    (info) Qt 5.5.0 for Android (Linux 32-bit, 608 MB)    (info) Qt 5.5.0 for Mac (588 MB)    (info) Qt 5.5.0 for Android (Mac, 652 MB)    (info) Qt 5.5.0 for Android and iOS (Mac, 1.7 GB)    (info) Qt 5.5.0 for Windows 64-bit (VS 2013, 650 MB)    (info) Qt 5.5.0 for Windows 32-bit (VS 2013, 633 MB)    (info) Qt 5.5.0 for Windows 32-bit (VS 2012, 587 MB)    (info) Qt 5.5.0 for Windows 32-bit (VS 2010, 585 MB)    (info) Qt 5.5.0 for Windows 32-bit (MinGW 4.9.2, 959 MB)    (info) Qt 5.5.0 for Android (Windows 32-bit, 1.0 GB)    (info) Qt 5.5.0 for Windows RT 32-bit (621 MB)    (info) OS X Host Qt 5.5.0 for Mac (588 MB)    (info) Qt 5.5.0 for Android (Mac, 652 MB)    (info) Qt 5.5.0 for Android and iOS (Mac, 1.7 GB)    (info) Windows Host Qt 5.5.0 for Windows 64-bit (VS 2013, 650 MB)    (info) Qt 5.5.0 for Windows 32-bit (VS 2013, 633 MB)    (info) Qt 5.5.0 for Windows 32-bit (VS 2012, 587 MB)    (info) Qt 5.5.0 for Windows 32-bit (VS 2010, 585 MB)    (info) Qt 5.5.0 for Windows 32-bit (MinGW 4.9.2, 959 MB)    (info)--我采用的 Qt 5.5.0 for Android (Windows 32-bit, 1.0 GB)    (info) Qt 5.5.0 for Windows RT 32-bit (621 MB)    (info)

Qt对不同的平台提供了不同版本的安装包,可根据实际情况自行下载安装

MinGW32 --> Minimalist GNU for Windows 32。

安装过程:

很容易!一路next!!

参考链接:安装Qt5并配置环境变量

https://blog.csdn.net/chexlong/article/details/53333647

1.6 Qt的优点

  ●跨平台,几乎支持所有的平台

  ●接口简单,容易上手,学习QT框架对学习其他框架有参考意义。

  ●一定程度上简化了内存回收机制

  ●开发效率高,能够快速的构建应用程序。

  ●有很好的社区氛围,市场份额在缓慢上升。

  ●可以进行嵌入式开发。

1.7为什么学习Qt

1)学习GUI编程,市场上任何一款产品几乎都带图形界面,市场上很火的Android、IOS编程无非也是GUI app编程,GUI编程都是差不多,学习Qt后再学习Android、IOS,那是 So easy。就算不学习Android、IOS,由于Qt跨平台特性,通过Qt写的程序可以在Android、IOS平台上运行。

2)锻炼编程能力,GUI编程比后台编程更能锻炼人,因为你除了核心数据处理外,还需要协调界面,同时懂得前端和后台编程,才能更好地写好程序。

3)为了更好地使用C++,学习Qt的框架(Qt是C++实现的应用程序框架),很多游戏、后台服务器框架都是使用C++实现。

1.8如何学习Qt 第一,要学好C++基础,这样函数和类用起来就很简单了;第二,要会使用帮助,IDE(Qt Creator)一般都带有帮助文件;第三,要会看文档,文档里面会包含全部的类和函数;只要会看文档,就知道了函数或者类的作用,就会用。这个是不需要记的。 2、 创建Qt项目 2.1 使用向导创建

打开Qt Creator 界面选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项

 

 

弹出New Project对话框,选择Qt Widgets Application, 

 

选择【Choose】按钮,弹出如下对话框

 

设置项目名称和路径,按照向导进行下一步,

 

选择编译套件

 

向导会默认添加一个继承自CMainWindow的类,可以在此修改类的名字和基类。继续下一步

 

 

即可创建出一个Qt桌面程序。

2.2 手动创建

添加一个空项目

 

选择【choose】进行下一步。设置项目名称和路径 —> 选择编译套件 --> 修改类信息 --> 完成(步骤同上),生成一个空项目。在空项目中添加文件:在项目名称上单击鼠标右键弹出右键菜单,选择【添加新文件】

 

弹出新建文件对话框

 

在此对话框中选择要添加的类或者文件,根据向导完成文件的添加。

代码:

HelloQt.pro

 QT += widgets SOURCES += \ main.cpp 

main.cpp

#include #include //窗口控件基类 #include int main(int argc, char **argv) { QApplication app(argc, argv); QWidget w; w.setWindowTitle(QString("主要看气质")); //设置标题 /*如果不指定父对象,对象和对象(窗口和窗口)没有关系,独立 * a指定b为它的父对象,a放在b的上面 * 指定父对象,有2种方式: * 1)setParent * 2)通过构造函数传参 * 指定父对象,只需要父对象显示,上面的子对象自动显示 */ QPushButton b; b.setText("^_^"); //给按钮设置内容 b.setParent(&w); //指定父对象 b.move(100, 100); //移动坐标 QPushButton b1(&w); //通过构造函数传参 b1.setText("abc"); w.show(); app.exec(); return 0; } 总结:

  ●1>. 在窗口中添加按钮       ▲类名: QPushButton       ▲设置按钮显示的内容: setText       ▲移动按钮位置: move       ▲按钮设置父窗口:setParent       ▲设置窗口的大小:resize() resizeFixed()   ●2>. Qt的坐标体系:       ▲坐标原点: 左上角       ▲x轴延伸的方向: 向右递增       ▲y轴延伸的方向: 向下递增   ●3>. Qt内存回收机制       满足什么条件的类不需要用户手动释放内存?       ▲1. 从QObject类直接或间接派生       ▲2. 给直接或间接派生出的类, 指定父对象

 

2.3 .pro文件

在使用Qt向导生成的应用程序.pro文件格式如下:

QT += core gui //模块的名字 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = test //应用程序名 TEMPLATE = app //生成的makefile的模板类型 //源文件 SOURCES += main.cpp\ mainwindow.cpp //头文件 HEADERS += mainwindow.h //窗口设计文件 FORMS += mainwindow.ui

.pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件。.pro文件的写法如下:

●注释

从“#”开始,到这一行结束。

●模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = app

   ▲app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。

   ▲ lib - 建立一个库的makefile。

   ▲ vcapp - 建立一个应用程序的VisualStudio项目文件。

   ▲ vclib - 建立一个库的VisualStudio项目文件。

   ▲ subdirs -这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。

● #指定生成的应用程序名:

TARGET = QtDemo

● #工程中包含的头文件

 HEADERS += include/painter.h 

●#工程中包含的.ui设计文件

FORMS += forms/painter.ui

●#工程中包含的源文件

SOURCES += sources/main.cpp sources/painter.cpp

●#工程中包含的资源文件

RESOURCES += qrc/painter.qrc

● greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

这条语句的含义是,如果QT_MAJOR_VERSION大于4(也就是当前使用的Qt5及更高版本)需要增加widgets模块。如果项目仅需支持Qt5,也可以直接添加“QT += widgets”一句。不过为了保持代码兼容,最好还是按照QtCreator生成的语句编写。

●#配置信息

CONFIG用来告诉qmake关于应用程序的配置信息。

CONFIG += c++11 //使用c++11的特性

在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项更安全。

2.4 一个最简单的Qt应用程序 #include #include int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget w; w.show(); return a.exec(); }

解释:

★Qt头文件没有.h后缀

★Qt一个类对应一个头文件,类名就是头文件名

★QApplication应用程序类

  ●★管理图形用户界面应用程序的控制流和主要设置。

  ●★ 是Qt的整个后台管理的命脉它包含主事件循环,在其中来自窗口系统和其它资源的所有事件处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理。

  ●★ 对于任何一个使用Qt的图形用户界面应用程序,都正好存在一个QApplication 对象,而不论这个应用程序在同一时间内是不是有0、1、2或更多个窗口。

★a.exec()

程序进入消息循环,等待对用户输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候exec()的值就会返回。在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。

 3、QtCreator常用快捷键

有的电脑是  Fn+...

  1)帮助文件:F1 (光标在函数名字或类名上,按 F1 即可跳转到对应帮助文档,查看其详细用法)

  2).h 文件和对应.cpp 文件切换:F4

  3)编译并运行:Ctrl + R

  4)函数声明和定义(函数调用和定义)切换:F2

  5)代码注释取消注释:Ctrl + / (选中代码再按快捷键)

  6)字体变大变小:Ctrl + 鼠标滚轮向上向下

  7)移动代码:选中所要移动的代码 -> 按住 ctrl + shift -> 键盘方向键

  8)查找替换关键字:ctrl + f

  9)快速打开代码所在目录:编辑模式下 -> 选中项目文件 -> 右击 -> 选择“显示包含的目录”,即可显示项目所在目录(此方法同样可以打开代码文件所在目录)

帮助文档的使用:

 比较详细的链接:https://blog.csdn.net/tennysonsky/article/details/48471805

我们使用 Qt 帮助文档,主要分为这么几步:  1)类使用的相关介绍  2)查看所用部件(类)的相应成员函数(功能,参数,返回值)  3)查看部件的信号  4)查看部件的事件(所对应的虚函数如何编写)

所要查看的几个重要信息:

公有成员函数:操作部件属性的相关函数。公有槽函数:Qt类中已经定义好的槽函数,直接可与信号相连接。信号:软中断,如按下按钮触发 pressed() 信号等。保护成员函数:通常事件所对应的虚函数放在此处。事件:常用事件,如操作鼠标触发的鼠标事件。

1)当然,我们可以直接在“帮助”模式下的“索引”输入框里输入所需查看的类:

2)查看所用部件(类)的相应成员函数(功能,参数,返回值)

查看所用部件的相应成员函数( 本身的成员函数,继承过来的成员函数 ),主要是为了查看这个成员函数如何使用,包括函数的功能,参数,返回值。

4、案例代码: 第一个:

 01_QtTest.pro

#模块 QT += core gui #高于4版本,添加 QT += widgets ,为了兼容Qt4 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets #应用程序的名字 TARGET = mike #指定makefile的类型, app TEMPLATE = app #源文件 .cpp文件 SOURCES += main.cpp\ mywidget.cpp #头文件 .h文件 HEADERS += mywidget.h

main.cpp

#include "mywidget.h" //QApplication应用程序类 //Qt头文件没有.h //头文件和类名一样 #include int main(int argc, char *argv[]) { //有且只有一个应用程序类的对象 QApplication a(argc, argv); //MyWidget继承与QWidget, QWidget是一个窗口基类 //所以MyWidget也是窗口类 //w就是一个窗口 MyWidget w; //窗口创建默认是隐藏,需要人为显示 w.show(); //让程序一直执行,等待用户操作 //等待事件的发生 a.exec(); return 0; }

mywidget.cpp

#include "mywidget.h" MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { } MyWidget::~MyWidget() { }

 mywidget.h

#ifndef MYWIDGET_H #define MYWIDGET_H #include class MyWidget : public QWidget { //Q_OBJECT //信号与槽的时候需要 public: MyWidget(QWidget *parent = 0); ~MyWidget(); }; #endif // MYWIDGET_H

案例2:

待续。。。。

来自互联网和自己的见解,如有雷同,不胜荣幸。欢迎转载!

赞 (0) 打赏 微信扫一扫 微信扫一扫 相关文章: 【2018.04.27 C与C++基础】关于switch-case及if-else的效率问题

【2018.04.27 C与C++基础】关于switch-case及if-else的效率问题

对于这个问题自己是比较清楚的,在分支比较多时,switch-case的效率肯定比if-else的要高许多,其原理类似于我们在优化某些程序时使用查表来... [阅读全文] VS2010使用Release进行调试的三个必须设置选项

VS2010使用Release进行调试的三个必须设置选项

How to: Debug a Release Build You can debug a release build of an applicat... [阅读全文] STL vector

STL vector

vertor : 可变大小的数组 可随机访问,尾部插入快,其它位置慢(涉及到拷贝和复制) Myfirst Mylast Myend 大小: size... [阅读全文] HDU 1506 Largest Rectangle in a Histogram(单调栈)

HDU 1506 Largest Rectangle in a Histogram(单调栈)

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O... [阅读全文] 一个蒟蒻对FFT的理解(蒟蒻也能看懂的FFT)

一个蒟蒻对FFT的理解(蒟蒻也能看懂的FFT)

建议同学们先自学一下“复数(虚数)”的性质、运算等知识,不然看这篇文章有很大概率看不懂。 作为一个典型的蒟蒻,别人的博客都看不懂,只好自己写一篇了。... [阅读全文] BZOJ1007: [HNOI2008]水平可见直线(单调栈)

BZOJ1007: [HNOI2008]水平可见直线(单调栈)

Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。

发表评论 验证码:


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭