У меня есть старое Qt
C++
приложение, которое отлично работает в настольном компьютере или ноутбуке.Сейчас я пытаюсь заставить его работать на встроенном устройстве с сенсорным экраном High DPI
с экраном 10 inch
с разрешением 1920 X 1200.Устройство работает Windows 10
.Я использую MXE
для кросс-компиляции для Windows на моем компьютере с Ubuntu.
Следуя предложению, приведенному здесь , я добавил следующие строки для автоматического масштабирования своего приложения.
static const char ENV_VAR_QT_DEVICE_PIXEL_RATIO[] = "QT_DEVICE_PIXEL_RATIO";
if (!qEnvironmentVariableIsSet(ENV_VAR_QT_DEVICE_PIXEL_RATIO)
&& !qEnvironmentVariableIsSet("QT_AUTO_SCREEN_SCALE_FACTOR")
&& !qEnvironmentVariableIsSet("QT_SCALE_FACTOR")
&& !qEnvironmentVariableIsSet("QT_SCREEN_SCALE_FACTORS")) {
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
}
Приложение запускается с нужного размера:
Однако, когда я делаю settingWidget
видимым, который добавляется к QDockWidget
,тогда приложение становится больше, чем размер экрана.Я не могу понять источник проблемы.
База кода очень велика, если кто-то хочет просмотреть код, тогда он должен помочь мне сфрагмент кода, в котором может быть ошибка, и я опубликую ее здесь.