zoukankan      html  css  js  c++  java
  • 4.标准信号与槽

    • connect
    • 如何找到信号发出者支持什么信号?
    • 自定义槽函数
    • 自定义信号

    connect

    connect(sender, &Sender::valueChanged,receiver, &Receiver::updateValue);

        QPushButton cLose;
        connect(&cLose,&QPushButton::clicked,this,&Widget::close);
    

    注意:直接创建的对象要放入地址,指针类型则直接放入.

        QPushButton * cLose;
        cLose=new QPushButton("关闭",this);
        connect(cLose,&QPushButton::clicked,this,&Widget::close);
    

    cLose:信号发出者,此参数是一个指针.
    &QPushButton::clicked:信号的发出者,内部的一个信号.格式:&+信号发出者类::+信号名字
    this:信号接收者,此参数为指针.当前窗口,当我们发出一个点击信号,当前窗口就会捕捉到这个信号.
    &Widget::close:widget类在文档中是不存在的,因为它是我们自己定义的一个类.若要查看它的信号应当在QWidget中.

    如何找到信号发出者支持什么信号?

    1. F1进入索引.
    2. 找到Signals.
    void clicked(bool checked = false)  //点一下
    void pressed()                      //按下
    void released()                     //松开鼠标
    void toggled(bool checked)
    

    自定义槽函数

    1. 槽函数在QT5中可以是任意类成员函数,全局函数,静态函数,lambda表达式(隐式函数);
    2. 槽函数需要与信号相对应(返回值,参数);
    3. 信号没有返回值,槽函数返回值void;
    4. void x(int,double,QString);
      void c(int,double,QString);
    5. 槽函数参数是为了信号传过来的数据;
    6. 槽函数参数不能大于信号参数个数,可以少于;
    void Widget::OpenSecWindow(void)
    {
        this->close();
        Sec_W.show();
    }
    

    在顶层窗口中申明并实现函数.

    connect(B2,&QPushButton::clicked,this,&Widget::OpenSecWindow);
    

    连接按钮和功能函数.

    自定义信号

    signals:
    自定义信号,必须使用signals声名.
    signals声名不需实现.
    否则定义后必须实现.

    1. 可以有参数.
    2. 可以重载.
    3. 返回值为void.
    4. 发送信号emit+信号名.
      emit signals;
  • 相关阅读:
    对于WP你所要了解的一些数字
    Win8系统太难用,再也不用了
    WP8下一些图片图标的常识(菜鸟篇)
    Wp8程序加载运行顺序(菜鸟篇)
    DLNA介绍(包括UPnP)
    一个通用的WPF值转换器
    C#创建Windows服务
    Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列 3 数据访问层
    Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列 1准备
    ASP.NET MVC Localization Helpers (本地化帮助方法)
  • 原文地址:https://www.cnblogs.com/cnleika/p/10536823.html
Copyright © 2011-2022 走看看