QT的学习总结

        这周学完了QT,现在我对在学习QT的一些知识点进行一个总结

        QT做UI的,主要做 PC上的UI的,QT的特点: 跨平台  win linux macos 等,同时还是开源的,它 面向对象的,使用C++开发[ qt改进了C++], 执行效率高,同时QT提供了全套方法:  UI  进程  线程  文件  数据 网络 .......

        1.信号和槽:

            信号signal:        对象因为某种事件,发出信号
            槽slot:            信号的接受者,处理信号的对象

信号和槽,主要是用于对象之间的通信: 一个对象发出信号,另一个对象接受信号并处理信号.而且是是QT特有的方式

        2.一些小控件        按钮 文本框 label 单选 复选 ....  

        如何学习一个小控件呢:
            1.知道他发出的那些信号,之后我们可以 定义新对象,使用slot处理该信号
            2.如何控制显示内容

        父对象:        和继承没有关系
            比如btn对象,想显示在 背景对象之上,btn对象要把parent对象
            设置为 背景对象.
                qt会按照这套规则, 让子对象显示在父对象之上.
                qt在显示父对象的时候,也同时会显示 父对象的所有子对象.

        3.布局 layout

        基本布局,只有两种  
                QVLayoutBox--垂直布局        内部的控件都是垂直摆放
                QHLayoutBox-水平布局           内部控件都是水平摆放
                我们常见的都是 两者的混合, 嵌套布局

        4.菜单 Qmenu

        1)ui创建菜单

        2)手工创建菜单

        5.事件Event

        事件和信号关系:
                对一个控件来说,来自外部的操作(点击 双击 滑动 划过)称为 事件event 
                 当某控件收到 事件之后,可以内部发出信号,通知其他对象
                 信号是基于事件实现的.

        6.绘图

        为什么要自己画,qt提供的控件满足不了我们的需求

        7.QT线程 

            我们知道主线程(又称 GUI线程),负责监控窗口上的任何事件,一旦发现事件,立马处理.但是有时候,任务很耗时,GUI进程会卡住,UI无响应 可否 创建一个新的子线程,负责处理 耗时的任务,###GUI线程只负责 UI刷新####.注意事项, 非GUI线程禁止访问 界面上任何元素. 如果非要显示,子线程要传递数据给GUI,有GUI线程负责刷新.

        8.网络 
        需要在    工程.pro中,添加 QT += network
     qt提供了socket接口,但是这套接口  基于信号和槽的, 而且qt所有的函数默认都是非阻塞的
    qt网络主要用在 客户端,服务器主要用来写小型 测试的服务器.
        客户端                                服务器
    
        fd=socket()                            listenfd=socket();
        ret = connect(ip,port);                bind(self_ip,port);
        while(1){                            lisetn();  
            sned(buf,len);                    while(1){
            recv(buf,len);                        newfd=accept();
            sleep(1);                            加入集合或者线程....
        }                                    }
        close(fd);

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值