Ошибка ссылки Cmake: неопределенная ссылка на Button :: mousePressEvent (QGraphicsSceneMouseEvent *) - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь скомпилировать групповой проект Qt с помощью cmake.Это работало, пока я не добавил часть GUI.main.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)

output:

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

Класс Button - это просто объект QObject для добавления кнопки на экран. Button:

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;
};

Любые предложения о том, как исправить ошибку компоновки

1 Ответ

0 голосов
/ 26 октября 2018

Чтобы устранить ошибку компоновщика, используйте этот метод или удалите его.

void mousePressEvent(QGraphicsSceneMouseEvent * event);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...