zoukankan      html  css  js  c++  java
  • _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函数.

    从〇开始,回到〇
  • 相关阅读:
    CF1051F The Shortest Statement
    [ZJOI2006]书架
    [FJOI2007]轮状病毒
    CF147B Smile House
    HDU4415 Assassin’s Creed
    飞行员配对方案问题
    [NOI2005]瑰丽华尔兹
    [NOIP2016]换教室
    [国家集训队]部落战争
    [NOI2005]聪聪与可可
  • 原文地址:https://www.cnblogs.com/zpsoe/p/7000744.html
Copyright © 2011-2022 走看看