Qt学习一

目录

 简介

Qt基础

1.main函数必须包含

2.代码分析

3.MainWindow类

4.Qt控件

5.Qt事件

6.信号和槽机制详解


 简介

Qt零基础学习第一天,day day up up!

Qt下载链接:Index of /archive/qt

Qt基础

1.main函数必须包含

int main(int argc, char *argv[])

{

    QApplication a(argc, argv);

   //代码

    return a.exec();

}

否则无法运行

函数首先创建一个QApplication类的对象,执行结束前调用QApplication对象的exec()函数

2.代码分析

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])

{

    QApplication a(argc, argv);

    MainWindow w; 

//MainWindow自定义的类,继承自QMainWindow主窗口类

//所以MainWindow也是一个主窗口类

    //w是MainWindow类实例化出的对象,表示一个主窗口

    w.show();  //通过show()方式调用w窗口,一般Qt提供的组件都是隐藏的

    return a.exec();

}

3.MainWindow类

MainWindow类由Q_OBJECT、构造函数和析构函数组成

3.1.Q_OBJECT本质是一个已定义好的宏,所有需要“信号和槽”功能的组件都必须将Q_OBJECT作为private属性成员引入到类中。

3.2.带参的构造函数:QWidget是所有组件的基类,借助parent指针,可以为当前窗口指定父窗口。

3.3.Qt中每个控件类(所有可视化元素)都直接或间接的继承自QWidget类。可以直接使用,也可以通过继承某个控件类的方式自定义一个新的控件。

4.Qt控件

   QMainWindow类生成的窗口自带菜单栏、工具栏和状态栏,中央区域还可以添加多个控件,常用来作为应用程序的主窗口(主窗口)

   QDialog类生成的窗口非常简单,没有菜单栏、工具栏和状态栏,但可以添加多个控件,常用来制作对话框(提示信息的对话框)

   QWidget类既可以制作窗口,也可以作为某个窗口上的控件(主窗口、控件)

5.Qt事件

一个Qt界面程序要接收事件,main()函数中就必须调用exec()函数,它的功能是使程序能够持续不断地接收各种事件。

每接收一个事件,Qt会分派给相应的事件处理函数来处理。

事件处理函数:a.修改控件的某些属性  b.运用信号和槽机制处理事件

 

6.信号和槽机制详解

6.1.用户和控件的每次交互过程称为一个事件

6.2.所有控件都有接收信号的能力,一个控件可以接收多个不同的信号。对于每一个信号控件都会做出响应动作,称为槽。

6.3.信号函数和槽函数通常位于某个类中,其特别之处在于:

6.3.1.信号函数用signals关键字修饰,槽函数用public slots、protected slots或者private slots修饰

6.3.2.信号函数只需要声明,不需要定义(实现),而槽函数需要定义(实现)

6.4.信号和槽机制只满足于以下两个条件的控件:

6.4.1.控件类必须直接或者间接继承自QObject类,Qt常用类继承关系如下(待补充)

6.4.2.控件类中必须包含privat属性的Q_OBJECT宏

6.5.将信号函数和槽函数连接起来需要借助QObject类提供的connect()函数

  

  eg:

    QPushButton But("按钮控件",&widget);    //定义一个位于widget中的按钮

    But.setGeometry(10,10,100,50);      //设置按钮的位置和尺寸

    QObject::connect(&But,&QPushButton::clicked,&widget,&QWidget::close);  

    //信号与槽,实现当用户点击按钮时,widget窗口关闭

信号发送者是But按钮对象,要发送的信号是“按钮被点击”,用QPushButton类提供的clicked()信号函数表示

信号接收者是widget主窗口对象,“窗口关闭”作为信号对应的槽,可以用QWidget类提供的close()函数表示

6.5.1.connect()函数指定信号函数和槽函数的语法格式是&+函数所在类+函数名

6.5.2.一个connect()函数只能关联一个信号函数和一个槽函数,程序中可以包含多个connect()函数,以此实现:

       a.关联多个信号函数和多个槽函数

       b.一个信号函数可以关联多个槽函数,当信号发出时,槽函数会一个一个执行,但随机

       c.多个信号函数可以关联同一个槽函数,无论哪个信号函数发出,槽函数都会执行

       d.connect()函数的method参数还可以指定一个信号函数并发,当信号发出时会随之发出另一个信号

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值