zoukankan      html  css  js  c++  java
  • QT入门-自定义信号

    1) 主窗口的子窗口:给当前项目添加一个C++类(QWidget为基类)。把这个类的头文件include进主窗口,然后在主窗口的私有变量里这样写:SubWidget subW;

    想要通过主窗口的按钮打开子窗口的时候,把按钮的点击动作和主窗口的成员函数connect起来,这个成员函数执行的就是subW->show()。(当然也可以hide主窗口)。

    2) 当想要点击子窗口的按钮来显示主窗口:

    用到自定义信号。

    在SubWidget类内自定义信号,前面要加signal关键字声明。加了signal关键字,编译器就知道这是信号,就无需实现了。

    signal:

      void sigSub();

      /*

             1.可以有参数

             2.可以重载

             3.返回值为void

             4.发送信号:emit + 信号名

      */

      sigSub这个信号属于SubWidget,因此子窗口能够把这个信号发出去。

    在子窗口的构造函数这样写:connect(b1, &QPushButton::clicked, this, &SubWidget::myslot);

    而:

               void SubWidget::myslot()

               {

                //发送信号

                  emit sigSub();

       }

    表示发送信号。

    在主窗口的构造函数里这么写:connect(&sb, &SubWidget::sigSub, this, &Widget::slotShowMe); 信号的发出者是子窗口, 信号为sigSub,接收者为主窗口,槽函数是主窗口的成员函数,内部可以自定义(比如show主窗口,hide子窗口)。

  • 相关阅读:
    Sass
    Less文件的建立
    面试问题整理
    高光谱图像分类部分名词解析
    监督学习,无监督学习和半监督学习
    git
    node.js安装及其环境配置
    浏览器从输入网址到渲染出页面的过程
    node的api
    模块与包管理工具
  • 原文地址:https://www.cnblogs.com/lipoicyclic/p/13269004.html
Copyright © 2011-2022 走看看