QT框架总结

一、QT介绍

1.什么是QT

        跨平台C++图形用户界面应用程序开发框架。

        《1》跨平台: 支持各种的操作系统, windows、Linux、MAC

        《2》编程语言:C++   面向对象编程    类

        《3》应用程序开发框架:图形用户界面   GUI应用程序   非GUI的应用程序

        《4》丰富的API :   有250多个以上的类,并且类有做模块的划分,代码模块化程序高!

Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些,Qt很容易扩展,并且允许真正地组件编程。

2.QT 应用:

车载系统

KTV 点歌系统

WPS

咪咕音乐

飞车游戏

播放器

安防监控系统 –海康威视    执行记录仪、行车记录仪、智能手环

医疗行业、 上位机、军工企业

二、QT的核心机制:信号与槽

1.作用

         实现对象与对象之间的通信

2.信号与槽的关联

        Connect(信号的发送者, 信号, 信号的接收者, 槽函数);

        信号的接收者收到信号执行对应的槽函数。

3.信号与槽

<1>.信号以及槽函数能否重载:    可以的

<2>.信号以及槽函数能否被继承:  可以的

<3>.信号能否传参:  可以的

信号要进行传参需要注意:

    信号的参数个数要大于等于槽函数参数的个数,并且参数类型的匹配的顺序只能是从左向右!

<4>信号如何触发:   emit 信号();

<5>信号不需要我们自己去实现

三、QT中如何配置sqlite3数据库

 

测试是否配置成功

四、图片的显示

1.静态图片显示

需要用到的类及函数:

      QPushButon 按钮    clicked()、 setText()、text()

      QLabel  显示图片    setPixmap(const QPixmap &)  setScaledContents(true)

      QPixmap    load()    scaled()

图片资源的加载步骤:

  1. 选中工程-》右键-》add new -》 Qt-》qrc
  2. Add Prefix—》/
  3. Add files---》选择图片,打开
  4. 保存
  5. 复制路径: 找到对应的图片资源,右键—》copy path

 2.动态图片的显示

需要用到的类及函数:

      QPushButton按钮:控制动图的显示与暂停    setEnabled()

      QLabel标签:去显示动图    setMovie(QMovie *movie)

      QMovie   setFileName()   start()    stop()

五、进度条的显示

需要用到的类:

     QPushButon  点击按钮,开始下载

     QProgressBar 显示下载的进度   setRange()、setValue()、value()、

     QTimer    timeout信号产生,槽函数中随机生成一个数,表示这一秒的下载的进度

六、多界面的切换

可以使用三种方法:

《1》.哪里需要哪里创建界面类的对象

   存在的问题:一个界面会被创建很多个对象

《2》.使用QT的核心机制:信号与槽函数

应用:当界面比较少的情况下使用

《3》.使用单例模式来实现界面管理

七、事件

事件(函数)

        指的是在QT的类中预先定义好的某些特定信号对应的处理函数,这些特定的。

信号一般是由外设发出,如鼠标、键盘、定时器等,这些处理函数是虚函数 ,在工程中使用时需要重写。

事件函数和槽函数的区别:

         事件函数:是QT类中提前定义好的虚函数,使用时需要重写,但不需要使用connect和信号进行关联。一旦信号发出,对应的事件函数就会被调用。

        槽函数:可以是提前定义好的(但不是虚函数,不需要重写),也可以是自定义的(不是 虚函数,不需要重写),使用时需要用connect将信号和槽关联。

1.鼠标事件

              鼠标按压事件-->mousePressEvent()

              鼠标释放事件-->mouseReleaseEvent()

              鼠标移动事件-->mouseMoveEvent()

              鼠标双击事件-->mouseDoubleClickEvent()

2.键盘事件

           键盘按压事件-->keyPressEvent()

           键盘释放事件-->keyReleaseEvent()

3.过滤事件

         过滤事件-->eventFilter

        QEvent:通用事件类  它派生出来了QKeyEvent和QMouseEvent

4.定时器事件

 QT中的定时器有两种用法:

          QTimer   timeout-->槽函数

          每一个QT工程都包含一个默认的定时器

          启动:this->startTimer(1000);

          当定时时间到时,对应的定时器事件函数就会被系统自动调用

          定时器事件--》timerEvent()

5.绘图事件

          画一条线

                     分析:1 鼠标移动-->收集移动的点值-->保存-->容器-->QList<QPoint> list;

                                2 绘图事件-->从容器中取出点值,绘制成一条线

          画多条线

                     分析:

                            1 鼠标移动-->收集移动的点值-->保存-->容器-->

                                   QVector< QVector<QPoint> >  _lines;//线集合对象

                            2 鼠标按压-->点值-->保存-->容器

                                   创建一条新线     

                            3 绘图事件-->二层循环  线-->点

         画图-->QImage

              pt.drawImage(0,0,drawing,0,0,this->width(),this->height())

              参数1:目标窗体的起始位置X坐标

              参数2:目标窗体的起始位置Y坐标

              参数3:需要绘制的源图片

              参数4:源图片的起始位置X坐标

              参数5:源图片的起始位置Y坐标

              参数6:目标窗体的宽度

              参数7:目标窗体的高度

八、QT网络编程

              QTcpSocket

              QUdpSocket

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值