qt中connect函数的使用方法

bool QObject::connect(const QObject *sender, const char *signal,
                       const QObject *receiver, const char *method,
                       Qt::ConnectionType type = Qt::AutoConnection);


1.sender: 一个指向信号发送者的QObject指针。这是发出信号的对象,可以是任何继承自QObject的类的实例。

注意:一个窗口接收另一个窗口中按钮点击之后发出的信号,发出信号者是那个窗口类的实例,而不是那个按钮

2.signal: 一个以null结尾的字符串,表示信号的声明。
这个字符串应该与类中signals宏定义的信号名称完全匹配。
例如,如果你的信号声明为void mySignal();,那么这里的字符串应该是"mySignal"。

注意点:
信号可以有参数,但是没有返回值
connect函数的第二个参数是信号的声明,而不是信号的实例。这是因为信号是与类相关联的,而不是与类创建的某个特定实例相关联。

3.receiver: 一个指向槽函数接收者的QObject指针。这是将要接收信号并执行槽函数的对象。
4.method: 一个以null结尾的字符串,表示槽函数的声明。这个字符串应该与类中槽函数的名称完全匹配。
例如,如果你的槽函数声明为void mySlot();,那么这里的字符串应该是"mySlot"。

type: 一个可选参数,指定连接的类型。默认值是Qt::AutoConnection,表示Qt将根据上下文自动选择连接类型。
Qt::DirectConnection: 直接连接,信号的发射将立即调用槽函数。
Qt::QueuedConnection: 排队连接,信号的发射将导致槽函数在一个单独的事件循环中被调用。
Qt::BlockingQueuedConnection: 阻塞排队连接,类似于QueuedConnection,但发射信号的线程将等待槽函数完成执行。

在Widget窗口中有一个按钮,点击按钮之后创建一个Form窗口,这个窗口中有一个按钮,点击之后会发出一个updateButtonSignal信号

Widget

void Widget::on_pushButton_clicked()
{

    Form *f = new Form(); 确保Form是Widget的子窗口
    f->show();
    //this->close();
    connect(f,&Form::updateButtonSignal,this,&Widget::test);
}

Form.cpp

void Form::on_pushButton_clicked()
{

    // close();
    // Widget *w = new Widget();
    // w->show();
    qDebug()<<"123";
    emit updateButtonSignal();

}

在Form.h中声明这个信号

signals:
    void updateButtonSignal();

相关推荐

  1. qtconnect函数使用方法

    2024-07-11 01:16:01       28 阅读
  2. Qtconnect函数使用

    2024-07-11 01:16:01       48 阅读
  3. Qt connect第五个参数

    2024-07-11 01:16:01       27 阅读
  4. php常见函数使用方法

    2024-07-11 01:16:01       19 阅读
  5. ExcelSUMPRODUCT函数使用方法与案例分析

    2024-07-11 01:16:01       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 01:16:01       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 01:16:01       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 01:16:01       62 阅读
  4. Python语言-面向对象

    2024-07-11 01:16:01       72 阅读

热门阅读

  1. C编程题收藏

    2024-07-11 01:16:01       22 阅读
  2. 深入Django(六)

    2024-07-11 01:16:01       21 阅读
  3. django models对应的mysql类型

    2024-07-11 01:16:01       25 阅读
  4. Golang 输入与输出

    2024-07-11 01:16:01       24 阅读
  5. vue extend的作用和使用方法

    2024-07-11 01:16:01       23 阅读
  6. Android View滑动冲突解决方案

    2024-07-11 01:16:01       27 阅读
  7. 【Android】ADB 使用指南

    2024-07-11 01:16:01       25 阅读