Cmake 链接问题:未定义对 Button::mousePressEvent(QGraphicsSceneMouseE

Cmake link issue: undefined reference to Button::mousePressEvent(QGraphicsSceneMouseEvent*)

本文关键字:mousePressEvent QGraphicsSceneMouseE Button 未定义 链接 问题 Cmake      更新时间:2023-10-16

我正在尝试用cmake编译一个组Qt项目。它一直工作到我添加 GUI 部分。 主.cpp:

#include <QtWidgets> 
int start_GUI(int argc, char *argv[]){
QApplication a(argc, argv); 
Window * window = new Window();
SSConnection *ssc = new SSConnection();
Window window;
return a;
}

cmake:

cmake_minimum_required(VERSION 3.6)   
project(client)              
set(CMAKE_CXX_STANDARD 11)          
set(SOURCE_FILES  main.cpp)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5WebSockets REQUIRED)
find_package(Qt5Gui REQUIRED)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(client_main ${SOURCE_FILES}) 
qt5_use_modules(client_main Widgets Gui WebSockets)

输出:

undefined reference to `Button::mousePressEvent(QGraphicsSceneMouseEvent*)'
undefined reference to `non-virtual thunk to Button::mousePressEvent(QGraphicsSceneMouseEvent*)'

Button 类只是一个 QObject,用于向屏幕添加按钮 按钮:

class Button : public QObject , public QGraphicsRectItem
{
Q_OBJECT
public:
Button(QString name, QGraphicsItem * parent = NULL);
void mousePressEvent(QGraphicsSceneMouseEvent * event);
signals:
void clicked();
private:
QGraphicsTextItem * text;
QPushButton * button;
QGraphicsRectItem * rect;
};

关于如何修复链接错误的任何建议

若要解决链接器错误,请实现此方法或删除它。

void mousePressEvent(QGraphicsSceneMouseEvent * event);