目录
一、Qt 介绍
Qt [1] 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。
2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。
2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。
二、Qt工程
1.工程 firstQt.pro
QT += core gui #这个项目用到的qt模块
QT += widgets
TARGET = FirstQt #生成的目标文件
TEMPLATE = app #程序模板
CONFIG += c++11 #支持c++11
SOURCES += \
main.cpp \
firstqt.cpp
HEADERS += \
firstqt.h
FORMS += \
firstqt.ui
2.Qt入口
#include "firstqt.h"
#include <QApplication> //头文件
int main(int argc, char *argv[])//主函数
{
QApplication a(argc, argv); //qt应用管理(只能创建一个对象)
FirstQt w; //在qt框架中创建一个窗口
w.show();//显示窗口
return a.exec();//进入到刷新(事件处理)
}
三、用Qtcreator集成开发环境创建Qt工程代码ui
1.创建项目的时候注意的问题
2.desgner设计器界面说明
四、纯代码实现Qt工程创建带ui界面编译运行
用纯代码实现下面界面
int main(int argc,char **argv)
{
QApplication a(argc,argv);
//创建QT窗口
QMainWindow win;
win.show();
win.resize(400,330);
//创建标签QLabel--在win上创建标签
QLabel title(&win);
title.show();
//设置标题的显示
title.setText("登录界面测试");
//设置尺寸和位置
title.setGeometry(30,10,340,50);
//创建输入
QLineEdit edit(&win);
edit.show();
edit.setGeometry(100,60,190,40);
QLineEdit edit1(&win);
edit1.show();
edit1.setGeometry(100,110,190,40);
//创建按钮
QPushButton button(&win);
button.show();
button.setGeometry(50,200,100,50);
button.setText("登录");
QPushButton button1(&win);
button1.show();
button1.setGeometry(240,200,100,50);
button1.setText("退出");
//刷新--(事件轮询-处理)
a.exec();
return 0;
}
五、基本组件(QLineEidt, QLabel, QPushButton,QWidget, QMainWindow)
1.基本组件QLabel标签
(1)属性
(2)控件是否能用
(3)尺寸位置
(4)字体设置
(5)QLabel特有的属性
(6)QLineEdit特有属性
六、布局
1.界面设计师布局
(1)通过布局管理器调整轮廓
(2)通过设置策略
(3)设置阀值(最大值,最小值)
2.纯代码布局
用纯代码实现下面布局
int main(int argc,char **argv)
{
QApplication a(argc,argv);
QWidget w;
w.show();
QPushButton button[4];
//设置控件策略
for(int i = 0;i < 4;i++)
{
button[i].setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum);
}
//设置控件最大值
button[1].setMaximumWidth(140);
//创建水平布局管理器
QHBoxLayout hbox;
hbox.addWidget(&button[0]);
hbox.addWidget(&button[1]);
//创建垂直布局管理器
QVBoxLayout v1box;
v1box.addWidget(&button[2]);
v1box.addWidget(&button[3]);
//创建最外面的垂直布局管理器
QVBoxLayout ovbox(&w);
ovbox.addLayout(&hbox);
ovbox.addLayout(&v1box);
//刷新--(事件轮询-处理)
a.exec();
return 0;
}