Приложение Qt становится больше экрана, если QDockWidget становится видимым - PullRequest
1 голос
/ 20 сентября 2019

У меня есть старое 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);
}

Приложение запускается с нужного размера:

enter image description here

Однако, когда я делаю settingWidget видимым, который добавляется к QDockWidget,тогда приложение становится больше, чем размер экрана.Я не могу понять источник проблемы.

enter image description here

База кода очень велика, если кто-то хочет просмотреть код, тогда он должен помочь мне сфрагмент кода, в котором может быть ошибка, и я опубликую ее здесь.

...