QT学习总结

自己理解核心:

QT主要是绑定信号和槽,利用按键触发的事件或信号调用函数解决问题的东西

按键不多,但是按键的一些方法复杂繁多,反正我记住的基本为零.

父对象:        和继承没有关系
            比如btn对象,想显示在 背景对象之上,btn对象要把parent对象
            设置为 背景对象.
                qt会按照这套规则, 让子对象显示在父对象之上.
                qt在显示父对象的时候,也同时会显示 父对象的所有子对象.
        
        控件继承关系:
            所有的小控件,都继承自 QWidget,它实现了背景
            qt所有的类,都继承自 QOBject类,这是一个 qt的基础类, 内部实现了 对象树(父对象 子对象), 信号和槽
 

GUI工作原理:  主进程持续监控 窗口的事件,一旦发现有事件产生则立即处理.
            事件有很多种, 鼠标--进入 离开 左击 右击 中击 滑动  划过.. 键盘-按下 弹起 ...
                
            事件和信号关系:
                对一个控件来说,来自外部的操作(点击 双击 滑动 划过)称为 事件event 
                    当某控件收到 事件之后,可以内部发出信号,通知其他对象
        
                信号是基于事件实现的.
        
            事件好处:
                 让某些控件拥有更丰富的操作  1)label增加 进入离开的操作,点击  2)给对象增加右击处理
                
        一个对象如何去捕获/处理 事件event?????
            对象:QWidget:QObject(实现了event的捕获和处理)
                当你操作某个对象(控件)的时候,比如按钮,被主进程捕获,主进程创建一个eventObj对象,描述了
                    你刚才的操作(比如划过 点击 位置), 然后主进程会调用 被操作对象(按钮)的 
                        btn.event(eventObj)        ,被操作对象(按钮) 重写该函数,完成自己的需要.
                一般对象可以不重新写 OBject::event(QEvent *), 使用默认的.
                    默认的event函数会干嘛呢??  根据QEvent类型(划过 点击 双击 离开)调用QWeidget内部
                    各种函数,当然这些函数可以继续被子对象 重写,因为他们全都是virtual.
    
    
对象如何实现捕获信号和处理特定信号呢:
            方法1:   对象,继承QLable/QButton/...., 重写内部的 事件处理函数即可.
                    优点:  好理解
                    缺点:  因为要自己实现新类, 所以无法使用ui工具来创建界面
    
            方法2:    事件过滤器 eventFilter
                
                子对象收到事件,可以 把事件交给父对象进行统一处理的.
                原理:   当你对子对象进行操作,子对象优先调用 父对象的 eventFilter()事件函数进行处理
                        父对象在函数中处理该事件,如果能够完全处理,处理完毕. 
                            如果父对象发现处理不了,还得交给子对象进行处理.
                
                如何做:
                    首先子对象(QLabel QButton)将自己的事件处理权利 交给父对象(窗体Widget),qt内部做好记录.
                        sub.交给别人的函数( 父亲的指针 )
                        btn.installEventFilter( 父指针 );
                    以后子对象发生的任何事情,主进程都会优先找到 父对象,执行父对象(窗体)的QObject::eventFilter来处理.
                            父对象(窗体Widget)重写 eventFilter函数
                    
                优点: 可以使用ui工具,而且这些事件可以统一处理
                缺点: 实现起来要复杂

网络最重要的是    需要在    工程.pro中,添加 QT += network

其他的东西嘛,结构和C的网络差不多,都是建立连接,然后发送信息和接收信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_65739284

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值