zoukankan      html  css  js  c++  java
  • QT 建立信号和槽的联系(事件处理)

    Qt中事件处理机制叫做“信号”和“槽”signal &slot.

    其模型为:

    对象a中有一个信号signal:XXX(代表一个事件)

    对象b中有一个槽slot:YYY(事件处理函数)

    用conect 把他们连接起来:

    connect(&a,XXX,&b,YYY)

    当a中事件发生时,b中的处理函数就会被调用。

    实例:

    在ui界面添加点击按钮和一个label,实现当点击按钮时,label显示“helloworld”.

    1.新建一个gui工程,在ui中添加控件pushbutton和label,pushbutton为对象a.

    2.右键pushbutton,选择go to slot...选项,进入select signal 界面可以查看pushbutton的信号处理函数,这里选择第二个clicked(bool)作为pushbutton的signal。

    3.定义一个处理函数,参数类型和signal的参数相同。

    在头文件中:

    private slots:
               int show(bool check);

    在cpp文件中:

    int MainWindow::show(bool check)
    {
      cout<<"helloword"<<endl;
    }

    4.将对象a的signal和b对象的slot给连接起来。

    connect(ui.pushButton,SIGNAL(click(bool)),this,SLOT(show(bool)));

    这里注意SIGNAL和SLOT要大写,click()和show()中的参数类型要相同,且只写数据类型,不需要变量。

    如何测试是否连接成功?

    connect函数输出的是bool类型值,如果为true表示连接成功,false表示失败。

    通过以上步奏就可以建立信号和槽的连接。

  • 相关阅读:
    对协程的一些理解
    JUC中Lock和ReentrantLock介绍及源码解析
    JUC中AQS简介
    Executor框架简介
    CyclicBarrier简介
    CountDownLatch简介
    Semaphore简介
    ThreadPoolExecutor简介
    AtomicInteger简介
    synchronized和volatile简介
  • 原文地址:https://www.cnblogs.com/fuhang/p/9888273.html
Copyright © 2011-2022 走看看