小编use*_*872的帖子

获取CMake错误:无法为不是由项目构建的目标指定链接库

我在我的代码中实现了CMake但是我收到了错误

"无法为目标"Qt5 :: Widgets"指定链接库,这些链接库不是由项目构建的".

以下是CMakeLists.txt的内容:

#Specify the version being used aswell as the language
cmake_minimum_required(VERSION 2.6)

#Name your project here
project(eCAD)

#Sends the -std=c++11 flag to the gcc compiler
ADD_DEFINITIONS(-std=c++11)

#This tells CMake to main.cpp and name it eCAD
add_executable(eCAD main.cpp)


#include the subdirectory containing our libs
add_subdirectory (gui)
include_directories(gui)

#include Qt directories
find_package(Qt5Widgets)
find_package(Qt5Core)
find_package(Qt5Designer)
SET(QT_USE_QTDESIGNER ON)

#link_libraries
target_link_libraries(Qt5::Widgets Qt5::Core) 
Run Code Online (Sandbox Code Playgroud)

cmake

24
推荐指数
3
解决办法
3万
查看次数

按键事件错误

我在实现捕捉时遇到 keyEvent 错误。错误如下:

error: invalid use of incomplete type 'class QKeyEvent'
 switch(event->key())
Run Code Online (Sandbox Code Playgroud)

我的按键事件代码如下:

void Snap::keyPressEvent(QKeyEvent* event)
    {
    switch(event->key())
    {
    case Qt::Key_Left:
    moveBy(-gridSize, 0);
    break;

    case Qt::Key_Right:
    moveBy(gridSize, 0);
    break;

    case Qt::Key_Up:
    moveBy(0, -gridSize);
    break;

    case Qt::Key_Down:
    moveBy(0, gridSize);
    break;

    default:
    QGraphicsItem::keyPressEvent(event);
    }
    }
Run Code Online (Sandbox Code Playgroud)

请帮我解决一下。

c++ qt qgraphicsview

3
推荐指数
1
解决办法
2435
查看次数

QGraphicsScene中的Arc

我想在QGraphicsScene中实现arc.我希望点击三个点时我的弧应被绘制,以便在点击三个点时绘制弧,其中第一个点将开始弧,第二个将是弧上的任何点,第三个将是弧的终点.我试过学习drawArc函数,但是对于startangle和spanangle感到困惑.我无法动态设置它们.请建议我继续下去.


我尝试了解决方案在我的项目中使用它,但是出现了以下错误:

error: cannot allocate an object of abstract type 'arc'
                 arcItem = new arc(++id, startP, midP, endP);
Run Code Online (Sandbox Code Playgroud)

你能帮帮我解决问题吗?我正在为我的项目提供一部分代码.在cadgraphicsscene的mousepress活动中,我做了以下事情.

cadgraphicsscene.cpp

    void CadGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
    {
        // mousePressEvent in the graphicsScene
        if(mouseEvent->button() == Qt::LeftButton)
        {
            switch (entityMode)
            {

            case ArcMode:
                if (mFirstClick)
                {
                    startP = mouseEvent->scenePos();
                    mFirstClick = false;
                    mSecondClick = true;
                }

                else if (!mFirstClick && mSecondClick)
                {
                    midP = mouseEvent->scenePos();
                    mFirstClick = false;
                    mSecondClick = false;
                    mThirdClick = true;
                }

                else if (!mSecondClick && mThirdClick)
                {
                    endP = mouseEvent->scenePos();
                    mThirdClick …
Run Code Online (Sandbox Code Playgroud)

c++ qt qgraphicsview qgraphicsscene

2
推荐指数
1
解决办法
7396
查看次数

标签 统计

c++ ×2

qgraphicsview ×2

qt ×2

cmake ×1

qgraphicsscene ×1