【问题标题】:Building a simple Qt UI Application using CMake creates blurry UI使用 CMake 构建一个简单的 Qt UI 应用程序会创建模糊的 UI
【发布时间】:2017-12-30 08:21:20
【问题描述】:

我创建了一个简单的 Qt 应用程序,只有一个 MainWindow 和一个 Button。当我使用 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})

项目结构-

我的机器配置-

【问题讨论】:

  • 它只是在 Retina 显示屏上“模糊”吗?模糊只是因为它没有在@2x 模式下运行吗?
  • @Ssswift 不幸的是,我不确定这一点,因为我没有使用非视网膜 Mac 进行测试。在那种情况下,解决办法是什么,我可以试试是否能解决问题。
  • CMake 只是一个(元)构建系统。它本身不能对使您的应用变得模糊负责。
  • @JesperJuhl 同意!这里的重点是-我相信必须在CMakeLists.txt 中进行一些Qt GUI 特定的配置才能使其正常工作。

标签: c++ macos qt cmake qtgui


【解决方案1】:

解决了!

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

创建自定义Info.plist 文件并添加以下键解决了问题-

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

要添加自定义Info.plistCMakeLists.txt 文件中添加以下行-

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

【讨论】:

  • 对布尔值使用&lt;true/&gt;,而不是&lt;string&gt;True&lt;/string&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 2022-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多