C++类库、图形
造轮子 ——> 用轮子(我们是使用者)
Qt可以做什么?
图形界面开发库
Qt最大的优势?
可以跨平台操作
Java可以跨平台是因为在不同平台上有Java虚拟机,慢。
Qt在编译的阶段进行跨平台,比较简单。
Qt的发展历史?
1991 芬兰,奇趣 Qt1~Qt3版本
2008 诺基亚收购 Qt4版本
2014 diyit公司收购 Qt5版本(Qt4和Qt5不兼容)
安装组件(一个环境,一个工具)
需要Qt环境(类库)编写器(Qt Creator)编译器(Qmake)调试器(Qt Creator)所见即所得——QtDesigner
C++Qt ——> C++(可以跨平台,主流)
Qtquick ——> QML(专用)
Debug 调试
Release 发行
Qt Creator 编写Qt程序 工具
.pro 记录了基本信息
Makefile 程序的基本信息,不同平台的Makefile是不同的
编写步骤
// qmake -project -> .pro // qmake -> makefile // make -> 可执行程序MVC -> 设计模式 M (model 模型)V (view 视图) C(controller 控制器)
界面、功能、数据相分离(开发、维护效率更高)mainwindow.cpp
mainwindow.h (controller控制器)
mainwindow.ui (view视图)
(数据模型自己设置)
QObject绝大多数类的父类
设计界面分为了8个类
Buttons按钮的功能
所有的可见控件 ————> 类的对象
可见类 ———> QWidget (存放的是一些外观的属性)
整体性:第一步:选择布局(Layouts) 第二步:拖动,使其成为整体。
整体中使其分离:第一步:选择Spacers,第二步:选择弹簧。
优化窗口:固定垂直和水平大小
Perferred:最佳,允许被缩放,但是是最佳的显示效果
Fixed:固定值
Expanded:扩展
布局成比例:更加美观
三个Label的比例都设成2:8,就可以实现对齐。
一、在哪写按钮相对应的“行为”?——.cpp
二、怎么写?
1. 哪个元素?
2. 哪种操作?(信号)
3. 哪个函数执行?
4. 哪个对象?
即:
哪个元素发出了什么信号?
哪个对象执行哪个函数(槽函数)?
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // connect(谁,发出了什么信号,谁,执行了什么操作); connect(this->ui->btnlogin,SIGNAL(clicked(bool)),this,SLOT(login())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::login() { qDebug()<<"login"; }写Qt前提:
1、有什么控件,这些控件可以发出什么信号?
2、信号与槽机制
3、槽函数(一个控件绑定一个槽函数)
鼠标右击直接转到槽!
优点:代码量少,开发快!
缺点:不易读!