在这段代码中,QObject::connect函数用于将信号与槽连接起来。然而,在你的代码中出现了错误提示:”signal not found in QAction”,意味着QAction类中没有找到对应的信号。
根据你的代码,发现在创建QAction对象时,连接信号与槽时使用了错误的语法。正确的语法是使用SIGNAL和SLOT宏来指定信号和槽函数。
例如,将以下两行代码:
connect(m_showClientsWindow, &QAction::trigger, this, &MainWindow::s_menu_Clients);
connect(m_showESP32sWindow, &QAction::trigger, this, &MainWindow::s_menu_ESP32s);
修改为:
connect(m_showClientsWindow, SIGNAL(triggered()), this, SLOT(s_menu_Clients()));
connect(m_showESP32sWindow, SIGNAL(triggered()), this, SLOT(s_menu_ESP32s()));
这样可以正确地将triggered()
信号与s_menu_Clients()
和s_menu_ESP32s()
槽函数进行连接。
请注意,Qt 5版本以后,建议使用新的语法来连接信号和槽:QObject::connect(sender, &SenderClass::signalName, receiver, &ReceiverClass::slotName)
。上面给出的示例是基于旧版语法进行修改。如果你使用的是较新版本的Qt,请尝试使用新版语法进行连接。
内容由零声教学AI助手提供,问题来源于学员提问