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函数.

    从〇开始,回到〇
  • 相关阅读:
    [服务器]Windows Server 2008 64位1核1G安装SQL Server2008
    [工作]离职了!好好休息一下
    [工作]IT连和IT恋产品已完成第一版,准备上线运营
    [SQL Server]储存过程中使用临时表循环操作数据
    [Swift]Xcode格式化代码快捷键
    [Swift]使用Alamofire传递参数时报错
    [工作]记录一下目前的工作
    [Swift]Swift图片显示方式设置,控件UIImageView的contentMode属性设置
    [Swift]创建桥接文件,Swift使用MJRefresh刷新插件
    我遇到了改变的机会
  • 原文地址:https://www.cnblogs.com/zpsoe/p/7000744.html
Copyright © 2011-2022 走看看