使用cmake

时间:2017-07-20 10:59:26

标签: qt cmake qt5 qtgui qtwidgets

我在linux上有一个Qt应用程序(Qt5)运行(并且看起来)非常好。我使用Qt Creator开发了这个,所以默认情况下它是在qmake的帮助下构建的。

但是当我使用cmake构建这个项目时,所有小部件的颜色都会受到干扰(如下所示)。我在CMakeLists文件中遗漏了什么吗?

这是我的cmake文件:

cmake_minimum_required(VERSION 3.0.2)

set (PROJECT_NAME QtTrialBuild)
project (${PROJECT_NAME})

find_package(Qt5Widgets REQUIRED)


set(CMAKE_INCLUDE_CURRENT_DIR ON)

include_directories(${Qt5Widgets_INCLUDES})
add_definitions(${Qt5Widgets_DEFINITIONS})

set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")

set ( SOURCES
main.cpp
imageviewer.cpp
CRubberBand.cpp
CImageSelector.cpp
CSelectablePicture.cpp
CScale.cpp
)

set ( MOC_HEADERS
imageviewer.h
CRubberBand.h
CImageSelector.h
CSelectablePicture.h
CScale.h
)

set ( UIS
 imageviewer.ui
)

qt5_wrap_ui( UI_HEADERS ${UIS} )
qt5_wrap_cpp( MOC_SRCS ${MOC_HEADERS} )

add_executable(${PROJECT_NAME} ${SOURCES} ${MOC_SRCS} ${UI_HEADERS})

target_link_libraries( ${PROJECT_NAME} Qt5::Widgets)

当使用Qt Creator构建时,这就是窗口的外观(这也是它想要的样子)

但是用Cmake

这是用cmake

构建时的外观

按钮,边框和弹出窗口的颜色已更改。我是否错过了任何参数,或者我忘了在cmakelists中添加一些内容?

1 个答案:

答案 0 :(得分:1)

QT5_ADD_RESOURCES似乎不见了:

set(YourProject_RC
    YourProject.qrc
    YourProject2.qrc
)

QT5_ADD_RESOURCES(YourProject_RC_SRCS ${YourProject_RC})

add_executable(YourProject.UI
    ...
    ${YourProject_RC_SRCS}
    ...
)