• _ZNote_编程语言_Qt_信号槽实现_拖拽方式使用控件


      所谓的信号槽,实际上就是观察者模式. 当某个事件发生后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal). 这种发出信号是没有目的的,类似于广播.如果对象对这个信号感兴趣,它就会使用链接(connect)函数,意思是,用自己的一个函数(成为槽(slot)来处理信号.也就是说,当信号发出时,被链接的槽函数会自动被回掉.

      Qt 5 引入了信号槽的新语法:使用函数指针能够获得编译期的类型检查。 

    有三种方式使用信号和槽

    1,拖拽

    2,右键

    3,代码方式

    ------------------------------------

    1,控件拖拽的方法

      a, 首先选择.ui文件

      

      

      b,上面菜单分别是离开模式和编辑模式.在不编辑的模式点离开状态

      

       c,拖入控件,选择编辑模式,在控件上拖动连接信号&槽

       

    2,右键转到槽方式

      a, 拖入控件,如Button  

       

      b,选择信号

      

      c,自动生成代码中写入信息

    //.h
    private slots:
        void on_pushButton_clicked(bool checked);
    
    
    //.cpp
    
    void MainWindow::on_pushButton_clicked(bool checked)
    {
         qDebug() << "Greeting message: ";
    }

    3,手动写代码方式

      a,头文件写入信息

    private slots:
       // void newConnection();void acceptConnection();
    

      b,写入信号实现

    void MainWindow::acceptConnection(){
       socket = server->nextPendingConnection();
       connect(socket,SIGNAL(readyRead()),this,SLOT(ReceiveData()));
    }

      c,连接信号与槽

      //newConnection()用于当有客户端访问时发出信号,acceptConnection()信号处理函数
      connect(server,SIGNAL(newConnection()),this,SLOT(acceptConnection()));

    总结:

    connect()函数

    ///一般形式
    connect(sender,signal,receiver,slot);
    
    //第一个参数是发出信号的对象.
    //第二个参数是发送对象发出的信号.
    //第三个是接受信号对象.
    //第四个是接收对象在接受到信号之后需要调用的函数.

    也就是说,当sender 发出 signal信号之后,会自动调用receiver的slot函数.

    从〇开始,回到〇
  • 相关阅读:
    ELK环境搭建
    django orm 操作表
    django1.11入门
    CentOS7 yum安装python3.6
    完美的【去重留一】SQL
    CentOS7安装docker
    【Jenskins】安装与配置
    【Linux】网卡配置与绑定
    【SaltStack】一些常用模块举例
    【SaltStack】通过Master给Minion安装MySQL
  • 原文地址:https://www.cnblogs.com/zpsoe/p/7000744.html
Copyright © 2020-2023  润新知