由于PC显示设置的更改,Qt小部件被部分剪裁

问题描述 投票:0回答:1

我在Qt应用程序中有固定大小的QDialog。当PC的显示设置中的“比例和布局”从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版。关于如何修复UI的任何建议,以使系统设置的比例,文本和其他项目保持不变?

c++ windows qt qt5 dpi
1个回答
0
投票

如果正确实施子布局或顶层窗口小部件,请使用布局而不为其使用固定大小或位置将解决这些问题。您看到的大多数此类问题是因为您尚未使用Qt的布局系统。

this

© www.soinside.com 2019 - 2024. All rights reserved.