Qt5 学习-上周学习情况汇总

一、信号槽机制

信号槽这里主要是connect函数。这是一个有5种重载的函数,属于QObject类。

connect函数的一般形式是这样的:

  1. connect(sender,   signal,
  2.         receiver, slot);
其中,receiver可以没有,这是默认接收者是this指针。slot允许是lambda表达式。

sender和receiver一般是QObeject*类型。参数前都加&.

槽参数个数一般比信号参数个数少,除非槽函数是带默认参数的函数。

如何通过成员函数指针来避免槽函数的错误,还没有搞清楚。

所谓lambda表达式,就是自定义一个函数,函数形式  [ ] (返回值){ 函数体 }

Qt4中,SIGNAL 和SLOT 都是字符串,所以形式是 SIGNAL( 函数 ),SLOT(函数)

编译器不检查字符串错误,所以Qt4得程序不稳定。

二、自定义信号槽

信号槽也是可以自定义的。

这里是说,信号和槽可以换成自己定义的函数。

首先,你得有个自己定义的类。

Qt中所有的类都以QObject 为基类。所以头文件中,要有#incldue<QObject>,并公有继承。类定义开头要写Q_OBJECT。

三、Qt模块化

Qt4 和Qt5的一大区别,在于Qt5的模块划分更细。分为基础模块和扩展模块。

Qt Core和Qt Widget是两个基础模块,一个负责提供核心的非GUI功能,一个提供GUI的基本功能。其他基础模块都需要在.pro文件中添加语句才可使用。

扩展模块不做说明。

四、主窗口MainWindow简介

QMainWindow 是Qt预定义好的一个主窗口的类。主窗口是一个应用程序的最顶层窗口。由标题栏、菜单栏、工具栏、状态栏组成。在主函数中定义一个MainWindow类对象,并调用这个对象的show()函数显示窗口。

标题栏格式有操作系统决定,当然也可以自定义,但无太大必要,也不在我们讨论范围之内。

工具栏不是一个细长条,它是一个AREA,一个矩形区域。内部有停靠窗口,可以类比PS的工具栏,再内部是工作区了。

使用QMainWindow需要提前#include<QMainWindow>

pro文件

QT += core gui  QT需要的两个模块,gui和 core                                           
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets          Qt版本大于5,添加Widgets模块
  
TARGET    = qtdemo    生成的程序名
TEMPLATE  = app         生成的程序所使用的模板

SOURCES  += main.cpp \ 
        mainwindow.cpp      源文件

HEADERS  += mainwindow.h      头文件 
pro文件会随着程序的复杂变得复杂起来

五、添加动作

动作是窗口的一个对象成员,类型是QAction*。

窗口的构造函数包括 setWindowTitle(tr(".....")),菜单栏,工具栏,和状态栏,分别调用不同的#include。

动作可以设置快捷键,图标,状态信息等,可以添加到菜单栏或工具栏中。

  1. #include <QAction>
  2. #include <QMenuBar>
  3. #include <QStatusBar>
  4. #include <QToolBar>
.h文件中不必写出所有的预编译命令。

总结、一些类的使用方法补充

#include<QDebug>,输入输出:qDebug() <<"hello"<<name;

字符串类QString,包含在#include<QObject>中

#include<QMainWindow>,主窗口类,是QObject的子类,所以继承这个类时,一样要在定义类开头加上Q_OBJECT

#include<QAction>,动作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值