Details
-
Bug
-
Resolution: Incomplete
-
P3: Somewhat important
-
None
-
5.12.11
-
None
-
- LG 27", 4k
- MacOS 10.15.5 (In a virtual machine in win10 21H2)
- Qt 5.12.11
- CMake 3.22.2
Description
CMake add to MACOSX_BUNDLE to use, I can build to get the .app folder, but Qt5.12.11 show devicePixelRatio: 1 (expected should be 2).
But when I block the MACOSX_BUNDLE macro, I can't build to get the .app folder, but Qt5.12.11 show devicePixelRatio: 2 (as expected).
This has been confusing me for over a month and I don't know if this is a Qt bug or a CMake bug? Does anyone know the answer?
In macos systems with high resolution display (Retina Display), the device pixel ratio is usually 2.
ENV:
- LG 27", 4k
- MacOS 10.15.5 (In a virtual machine in win10 21H2)
- Qt 5.12.11
- CMake 3.22.2
Deam:
// CMakeLists.txt cmake_minimum_required(VERSION 3.5)project(Example VERSION 0.1 LANGUAGES CXX)set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON)set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED)set(PROJECT_SOURCES main.cpp )if (APPLE) # add_executable(Example MACOSX_BUNDLE ${PROJECT_SOURCES}) # devicePixelRatio: 1 ??? add_executable(Example ${PROJECT_SOURCES}) # devicePixelRatio: 2 not build .app else() # add_executable(Example WIN32 ${PROJECT_SOURCES}) endif()target_link_libraries(Example PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
// main.cpp #include <QApplication> #include <QScreen> #include <QDebug>int main(int argc, char *argv[]) { QApplication a(argc, argv); qDebug()<< "devicePixelRatio:" <<QApplication::primaryScreen()->devicePixelRatio(); return a.exec(); }