使用CMake构建简单的Qt UI应用程序会创建模糊的UI

时间:2017-07-24 16:39:09

标签: c++ macos qt cmake qtgui

我创建了一个只有MainWindow和Button的简单Qt应用程序。当我使用Qmake在Qt中构建它时,它工作正常,UI也很好。另一方面,如果使用CMake构建它可以正常工作,但应用程序UI模糊。

有人可以让我知道如何解决它。谢谢。

使用QMake生成的应用程序的用户界面 - enter image description here 使用CMake 生成的应用程序的UI enter image description here

我的CmakeList.txt文件

make_minimum_required(VERSION 3.0.2)
project(MyProject)

find_package(Qt5Widgets 5.9 PATHS /usr/local/Cellar/qt/5.9.1)
find_package(OpenGL)
#find_package(IOKit PATHS /System/Library/Frameworks/IOKit.framework/Versions/A)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

add_library(mainwindow mainwindow.cpp)
target_link_libraries (mainwindow Qt5::Widgets)

#set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE YES)
add_executable(MyProject MACOSX_BUNDLE main.cpp)
target_link_libraries (MyProject mainwindow ${OPENGL_gl_LIBRARY})

项目结构 -

enter image description here

我的机器配置 -

enter image description here

1 个答案:

答案 0 :(得分:2)

解决!

我认为为MacOS创建捆绑包需要在Info.plist文件中设置关键字,因为它提到了here

通过添加以下密钥创建自定义Info.plist文件解决了问题 -

<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
<string>True</string>

要添加自定义Info.plist,请在CMakeLists.txt文件中添加以下行 -

# Set a custom plist file for the app bundle
set_target_properties(MyProject PROPERTIES MACOSX_BUNDLE_INFO_PLIST <dir>/Info.plist)