Qt槽函数的几种用法

Qt槽函数的几种用法

  • 通过ui控件添加槽函数
  • 通过connect连接

通过ui控件添加槽函数

这种方法是在Qt的ui文件中,添加一个控件,然后点击右键,选择具体的槽函数,具体操作如下:

  1. 新建一个Qt项目(略过)
  2. 点击ui文件
    Qt槽函数的几种用法_第1张图片
  3. 添加一个控件(这里添加一个按钮(PushButton))
    Qt槽函数的几种用法_第2张图片Qt槽函数的几种用法_第3张图片
  4. 右键按钮控件Qt槽函数的几种用法_第4张图片
  5. 选择相应的事件(这里选择clicked)Qt槽函数的几种用法_第5张图片
  6. 在mainwindow.h和mainwindow.cpp中会自动添加两段代码,如下:Qt槽函数的几种用法_第6张图片

Qt槽函数的几种用法_第7张图片
然后就可以在函数中添加相关代码来实现。

通过connect连接

**1、首先介绍第一种方式,通过SIGNAL和SLOT来实现。**格式如下:

connect(sender, SIGNAL(), receiver, SLOT());

sender是发送对象
SINGAL是信号
receiver是接收对象
SLOT是槽函数

例如:

connect(ui->pushButton, SIGNAL(clikced()), this, SLOT(close)));

功能是按钮按下,执行close()函数.
2、同样使用connect,但是不使用SIGNAL和SLOT来实现。例如:

connect(saveAction, &QAction::triggered, this, &MainWindow::save);

事件发送者可以是ui中添加的控件对象,也可以是纯代码新建的对象。这里的信号是&QAction::triggered,槽函数是&MainWindow::save。意思是saveAction这个控件触发的时候,执行save这个函数,这里使用的指针来调用函数。

在这种方式下还有一种方式,使用lambda表达式。例如:

connect(cancelAction, &QAction::triggered, this, [=](){
       ui->textEdit->undo();
    });

这里执行的功能是触发控件执行撤销操作。通过lambda来声明槽函数。

你可能感兴趣的:(Qt,qt,c++)