【Visual Studio】开发 Qt 时右键没有自动添加 slots 槽的功能,使用 C++ 语言,配合 Qt 开发串口通信界面

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio

这个 Bug 是我做这个工程时遇到的:【Visual Studio】使用 C++ 语言,配合 Qt,开发了一个串口通信界面

文章目录

基于 Visual Studio 环境下使用 Qt,发现右键没有自动添加槽的功能,需要自己想办法。我看网上介绍了不止一种方法,特此总结下自己用过的一些方法。

比如使用我们为一个按钮添加一个点击后的功能。

GUI.h 可以添加如下内容,也就是函数的声明:

private slots:
	void on_pushButtonStop_clicked();

GUI.cpp 中添加函数的具体执行功能:

void GUI::on_pushButtonStop_clicked()
{
    
    
    m_SerialPort.close();
    ui.textBrowserStatus->insertPlainText("Successfully close the serial port!\r\n");
    ui.textBrowserStatus->moveCursor(QTextCursor::End);
}

然后在 GUI.ui 界面中进行槽的连接。

首先,切换到 Edit Signals/Slots 界面,如下图所示:
在这里插入图片描述

然后左键从按钮位置拖动一下,然后放手。就会弹出如下界面:
在这里插入图片描述

需要自己添加一下编写的函数名字。

在这里插入图片描述

最后选择确定就行了。

在这里插入图片描述

完成后的效果如下图所示:

在这里插入图片描述

至此,已经完成了槽的连接。

不过只要你规范地编写了 GUI.h 文件和 GUI.cpp 文件,哪怕你没有在 GUI.ui 界面进行槽函数的连接,也是可以的。那是因为你编写的函数名字很规范,系统默认进行了关联。也就是执行了以下语句:

connect(pushButtonStop, SIGNAL(clicked()), this, SLOT (on_pushButtonStop_clicked());

更详细的解释请参考这两篇文章:VS qt 添加信号槽vs2019开发Qt5,QAction类的信号转到槽的实现技巧


发现一个有意思的意外。

我在另一个 Start 按钮中本身已经编写了他的 GUI.h 文件和 GUI.cpp 文件,但是在 GUI.ui 界面没有进行槽函数的连接。首先它是可以正常执行开始功能的。

然后,我在 GUI.ui 界面链接错了槽函数,连接成了 Stop 按钮的功能。然后就发现两个按钮的功能函数都执行了。

不过执行顺序是先 Stop 功能(下图中的 close 提示),再是 Start 功能(下图中的 start 提示)。这应该也能说明槽的连接机制,优先级是更高的。

在这里插入图片描述

Ref.

  1. VS qt 添加信号槽
  2. vs2019开发Qt5,QAction类的信号转到槽的实现技巧
  3. Qt信号与槽使用方法最完整总结
  4. QT+VS开发界面入门(qt界面在VS2022实现自动生成槽函数)

猜你喜欢

转载自blog.csdn.net/weixin_36815313/article/details/131318916