使用 CMake 构建简单的 Qt UI 应用程序创建模糊 UI
Building a simple Qt UI Application using CMake creates blurry UI
我创建了一个简单的 Qt 应用程序,它只有一个主窗口和一个按钮。当我使用 Qmake
在 Qt 中构建它时,它工作正常并且 UI 也很好。另一方面,如果使用 CMake 构建它,它工作正常但应用程序 UI 是模糊的。
谁能告诉我如何解决它。谢谢。
使用 QMake
- 生成的应用程序的 UI-
使用 CMake
生成的应用程序的 UI
我的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})
项目结构-
我的机器配置-
已解决!
我认为为 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)
我创建了一个简单的 Qt 应用程序,它只有一个主窗口和一个按钮。当我使用 Qmake
在 Qt 中构建它时,它工作正常并且 UI 也很好。另一方面,如果使用 CMake 构建它,它工作正常但应用程序 UI 是模糊的。
谁能告诉我如何解决它。谢谢。
使用QMake
- 生成的应用程序的 UI-
CMake
我的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})
项目结构-
我的机器配置-
已解决!
我认为为 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)