一、Qt是什么?
Qt是一个基于C++的跨平台的应用程序开发框架 。这种说法我是认可的。目前Qt的开发语言 有c++和QML,但是c++仍为主流语言。跨平台 可以理解成一次编写,到处编译。无论是安卓还是苹果,无论是windows还是linux都可以!Qt主要用于开发GUI应用程序 ,但不仅仅是GUI,也可用于后台程序或底层程序开发!开发框架是指有现成的库可供使用,不需要从零开始,可以节省时间与精力,提高开发效率!
二、Qt创建一个空白画面
创建一个project,之后修改main.cpp文件即可。
cpp
#include <QApplication> //一定要的头文件,代表的意思是Qt应用程序管理界面
#include <QWidget> //是一个类的名字,表示空白界面
int main(int argc,char* argv[])//不用argc与argv也需要写上定义
{
QApplication app(argc,argv);//实例化一个应用程序管理对象,得有他来管理所有的界面
QWidget w;//实例化一个空白界面对象,默认不显示
w.show();//把空白界面显示出来
app.exec();//app对象提供了exec函数,让应用程序进入事件循环,能让程序不退出,能接收用户的各种事件(如鼠标移动,键盘输入),相当于一个死循环
return 0;//到此程序结束
}
有关说明:
1.Qt中所有的头文件名都是以大写字母Q开头,Q后面的单词首字母也是大写的,头文件名也是类名。
2.所有的Qt界面程序都必须包含QApplication类,然后必须用该类创建一个对象,用于管理整个项目,并且一个要在所有的代码之前。
3.Qt中的类型是按功能划分成不同的模块。模块有很多,跟界面相关的主要用到如下模块:core(核心模块,其它所有的模块都依赖于此模块,默认加载)、gui(界面相关的功能模块,如字体、颜色、风格等,默认加载)、widgets(界面元素,或者叫控件,也就是所有在界面上能看到的东西,得自己添加)。
4.每个模块中都有许多类,widgets模块中最核心的类,就是QWidget类。QWidget类有两个基类及许多派生类。两个基类为:QObject(这是Qt类的层次关系中最顶层的基类,他提供了Qt最核心的功能:信号和槽,即用来实现人机交互)、QPaintDevice(这也是一个基类,该类及它的派生类能够作为绘制设备使用,即可以画图)。它的派生类可分为两类:界面类(QMainWindow(包含菜单栏、工具栏、状态栏的界面)、QDialog(对话框,其特点为生命周期比较短))、控件类(菜单、状态栏、按钮、标签、文本框。所有的控件应该出现在界面上)。
5.pro文件:所有的Qt项目中都得有一个project文件(工程管理文件),描述了整个项目中所有的东西(头文件/源文件/模块/第三方库/资源)。
6.影子构建:QtCreator默认情况下,是把项目的源码(即.h/.cpp等/.pro)与中间及结果文件(即.o/Makefile/可执行文件等)分开存放,源码就在项目文件夹中,而中间及结果文件如影随形跟着项目文件夹,与项目文件夹在同一个目录中。存放中间及结果文件的目录名:build-项目名称-编译套件名称-模式。一般称为build目录。build目录可删除,只要重新运行/构建,都会自动生成。如果是从其他地方拷贝项目中有build目录,请先删除再编译项目。还有.pro.user文件(记录了该项目的当前环境,只要编译项目,就会自动生成)也需要删除。项目生成的可执行文件名称默认与当前项目同名,存放在build下。
三、自定义界面类
1.继承已有的界面类,以下三个中选一个就行:QWidget、QMaindow、QDialog。
2.添加派生类新特性,主要是添加界面元素。
3.调整界面元素的属性(界面元素指的是所有在界面上能看到的东西,Qt中界面元素的英文叫widget,一般叫做控件)。
4.Qt中的调试输出:在Qt中可以用printf,cout来进行输出信息,但一般很少用。常用qDebug()函数来输出调试信息,使用方式:
cpp
#include <QDebug>
qDebug()<<"hello qt";
四、常用控件
Qt自带有许多的控件,其中最常用的应该是如下三个:标签(QLabel)、按钮(QPushButton)、文本框(QLineEdit)。
1.怎么在自定义界面中添加控件(以按钮为例):
(1)在自定义的头文件中,添加按钮的头文件<QPushButton>
(2)在类声明的私有区域,创建一个对象指针。比如:QPushButton* btn_login;
(3)在类的源文件的构造函数定义中,动态创建个按钮对象。比如:btn_login=new QPushButton(this); //this表示把按钮显示在当前界面上。
(4)调整按钮的属性,如文本、位置、大小。
文本属性:text 位置属性:pos 大小属性:size
要访问控件的属性,必须使用它的访问函数(access function)。例如:文本属性的访问函数为QString text() const; //读取对象的文本值 void setText(const QString& text); //修改对象的文本值。