У меня есть QDialog в приложении Qt фиксированного размера. Когда «масштаб и компоновка» в настройках дисплея p c изменяется со 100% до 150%, виджет частично обрезается.
Вот код:
void windowsDpiScale()
{
const HDC hDC = GetDC(NULL);
const int dpiX = GetDeviceCaps(hDC, LOGPIXELSX);
const int dpiY = GetDeviceCaps(hDC, LOGPIXELSY);
ReleaseDC(NULL, hDC);
// Perform the scaling.
MulDiv(100, dpiX, 96);
MulDiv(100, dpiY, 96);
}
int main()
{
windowsDpiScale();
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); //HiDPI pixmaps
QApplication main_application(argc, argv);
}
Я также попытался установить qputenv ("QT_AUTO_SCREEN_SCALE_FACTOR", "1"); и QGuiApplication :: setDesktopSettingsAware (false); но это не помогло. Я использую Qt версии 5.8. Любые предложения о том, как я могу исправить пользовательский интерфейс, чтобы масштаб, текст и другие элементы системных настроек не менялись?