GH-3666 Fix multi-monitor dpi scaling on windows
Disable qt 5.6 DPI scaling and use windows' builtin DPI scaling, which works much better on multi-monitor setups
This commit is contained in:
parent
cbc973a5af
commit
34bf688479
@ -4,6 +4,10 @@
|
|||||||
#include <InstanceList.h>
|
#include <InstanceList.h>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
#include<windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
// #define BREAK_INFINITE_LOOP
|
// #define BREAK_INFINITE_LOOP
|
||||||
// #define BREAK_EXCEPTION
|
// #define BREAK_EXCEPTION
|
||||||
// #define BREAK_RETURN
|
// #define BREAK_RETURN
|
||||||
@ -29,7 +33,19 @@ int main(int argc, char *argv[])
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
|
||||||
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
#ifdef Q_OS_WIN
|
||||||
|
BOOL (__stdcall *pFn)(void);
|
||||||
|
HINSTANCE hInstance=LoadLibrary("user32.dll");
|
||||||
|
if(hInstance) {
|
||||||
|
pFn = (BOOL (__stdcall*)(void))GetProcAddress(hInstance, "SetProcessDPIAware");
|
||||||
|
if(pFn)
|
||||||
|
pFn();
|
||||||
|
FreeLibrary(hInstance);
|
||||||
|
}
|
||||||
|
QApplication::setAttribute(Qt::AA_DisableHighDpiScaling);
|
||||||
|
#else
|
||||||
|
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||||
|
#endif
|
||||||
QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
|
QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user