10

I've got a new laptop that came with a 4k UHD screen. The GUI on QGIS doesn't scale well making most of the menu elements too small to easily see.

Is there a way to change the scale of the gui?

7
  • Have you tried some of the Windows scaling related measures? For instance have you tried any of these: blogs.windows.com/bloggingwindows/2013/07/15/…
    – John
    Commented Jan 30, 2015 at 20:49
  • When you say it doesn't scale well, does that mean you've tried the OS adjustments johns links to, and they don't work well or at all? This is a commonly discussed issue with the rapid spread of UHD displays, because some software doesn't respect the OS scaling at all, and sometimes it's just not done well. As annoying as it might be and losing all the benefit to your lovely new Hi-Def display, dropping your resolution down while working in QGIS might be your best option. And what OS are you using? Because it matters with this issue.
    – Chris W
    Commented Jan 30, 2015 at 21:39
  • I am using Windows 8.1 and Ubuntu 14.10 I've found this feature request that seems to explain what I am experiencing: hub.qgis.org/issues/11780 The workaround helps with icon scaling but doesn't work for attribute tables.
    – NWT Adam
    Commented Jan 31, 2015 at 1:05
  • 1
    QGIS Tips on Hi DPI Screens (gets technical with designer-qt4) itopen.it/qgis-and-qt-getting-ready-for-hidpi-screens maybe @underdark has better idea
    – Mapperz
    Commented Jun 10, 2016 at 1:31
  • 1
    Have you tried increasing the size of text and icons in QGIS setting?
    – HDunn
    Commented Feb 8, 2017 at 13:00

6 Answers 6

9

As @Dave Pitman points out in his answer, that a user, Stu Smith, got the manifest hack to work.

I actually got it to work too. Follow the instructions using the link:

http://www.danantonielli.com/adobe-app-scaling-on-high-dpi-displays-fix/

Once the manifest.txt file is downloaded, copy it to the QGIS bin folder. In my case:

C:\Program Files\QGIS 2.18\bin

and rename it to 'qgis-bin.exe.manifest'.

Additionally, you'll need to ensure display scaling is disabled.

To do this, you'll need a shortcut to 'QGIS Desktop', for example, by pinning it to the Windows taskbar.

Right click the QGIS icon, then right click 'QGIS Desktop 2.18.3' in my case, and select 'Properties'.

Click the 'Compatibility' tab, and uncheck 'Disable display scaling on high DPI settings'.

There's a minor niggle that the text and icons are not as sharp as they would be otherwise, apart from that the hack works pretty well.

Update: For the Windows 10 Creators update, in the 'Compatibility' tab, check 'Override high DPI scaling behaviour. Scaling performed by:', and then select 'System' from the drop-down menu.

1
  • This works well on my Windows 11 machine if the "Icon size" is changed too, as per Ian's and Elmopc's answers below. Commented Jan 16, 2023 at 22:51
4

Go to Settings >>> Options >> General Menu > Icon Size Check this below: http://docs.qgis.org/2.2/en/docs/user_manual/introduction/qgis_configuration.html

1
  • 1
    Welcome to GIS SE. It is better to not only include a link as these can be lost. Could you expand you answer to include all steps. Commented Feb 13, 2017 at 12:19
4

I've tried all of the scaling remedies I could find and so far, QGIS is not workable on an UHD Windows 10.

For other applications with similar issues, the "manifest" hack has worked pretty well.

http://www.danantonielli.com/adobe-app-scaling-on-high-dpi-displays-fix/

This is working acceptably. The manifest file must be spelled perfectly 'qgis-bin.exe.manifest'.

4
  • Yep, it's so frustrating. I would have thought that the target market for QGIS would prefer higher resolution screens and as such this functionality would have been implemented by now.
    – NWT Adam
    Commented Jan 6, 2017 at 17:36
  • Here we are 2 years since you asked the question. I don't know if there has even been any improvement since then, perhaps you would know. On another thread in here with the same discussion, a user, Stu Smith, stated that the manifest hack worked. However the thread is locked to newer users and no way to ask Stu about how it worked for him. gis.stackexchange.com/questions/163414/… Commented Jan 6, 2017 at 17:46
  • 1
    Hi, Stu Smith here... I stumbled across this thread and saw my name included. My report: as of 2.18.7, the combination of the Dan Antonielli .manifest solution plus the display scaling disabling mentioned by ccoder83 above work well. Not perfect, because the toobar buttons are still a little pixelated and thus slightly fuzzy. Nonetheless, I am VERY satisfied with the results, which result in a very workable solution! Additionally, high dpi capability was supposedly added at 2.16 by Mathieu Pellerin, see changelog.inasafe.org/en/qgis/version/2.16.0
    – Stu Smith
    Commented Apr 29, 2017 at 16:34
  • Checking in from 2023...QGIS on Windows 10 is still a disaster with UHD displays. Switching back and forth from the 4K laptop screen and being remotely connected to the laptop using a 1080 display blows everything up, the app is unusable.
    – mfcallahan
    Commented Feb 22, 2023 at 12:56
3

This is a screenshot of the settings area where you change icon size. This is the settings area to change the icon size

1
  • This is excellent, makes a big difference. Commented Nov 22, 2021 at 23:56
3

I want to highlight the update from @ccoder83 because I think this is the best and simplest solution for Windows 10 Creators update (and later). It deserves its own answer, IMO. I missed the update until after i messed around in the registry and manifest file.

Right click on qgis-bin.exe and go to properties. In the 'Compatibility' tab, check 'Override high DPI scaling behaviour. Scaling performed by:', and then select 'System' from the drop-down menu.

If using OSGEO4W, qgis-bin is mostly likely at "C:\OSGeo4W64\bin"

0

Here a batch code to create regedit key and auto generate manifest file. Put this code to a .bat file and execute it as administrator.

@echo off
chcp 65001
setLocal EnableDelayedExpansion

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide" /v PreferExternalManifest /t REG_DWORD /d 0x00000001 /f


set /p path="Please, enter full path to the .exe file: "

echo "%path%"

>"%path%.manifest" (
    echo:^<?xml version=^"1.0^" encoding=^"UTF-8^" standalone=^"yes^"?^>
    echo:
    echo:^<assembly xmlns=^"urn:schemas-microsoft-com:asm.v1^" manifestVersion=^"1.0^" xmlns:asmv3=^"urn:schemas-microsoft-com:asm.v3^"^>
    echo:
    echo:^<dependency^>
    echo:  ^<dependentAssembly^>
    echo:    ^<assemblyIdentity
    echo:      type=^"win32^"
    echo:      name=^"Microsoft.Windows.Common-Controls^"
    echo:      version=^"6.0.0.0^" processorArchitecture=^"*^"
    echo:      publicKeyToken=^"6595b64144ccf1df^"
    echo:      language=^"*^"^>
    echo:    ^</assemblyIdentity^>
    echo:  ^</dependentAssembly^>
    echo:^</dependency^>
    echo:
    echo:^<dependency^>
    echo:  ^<dependentAssembly^>
    echo:    ^<assemblyIdentity
    echo:      type=^"win32^"
    echo:      name=^"Microsoft.VC90.CRT^"
    echo:      version=^"9.0.21022.8^"
    echo:      processorArchitecture=^"amd64^"
    echo:      publicKeyToken=^"1fc8b3b9a1e18e3b^"^>
    echo:    ^</assemblyIdentity^>
    echo:  ^</dependentAssembly^>
    echo:^</dependency^>
    echo:
    echo:^<trustInfo xmlns=^"urn:schemas-microsoft-com:asm.v3^"^>
    echo:  ^<security^>
    echo:    ^<requestedPrivileges^>
    echo:      ^<requestedExecutionLevel
    echo:        level=^"asInvoker^"
    echo:        uiAccess=^"false^"/^>
    echo:    ^</requestedPrivileges^>
    echo:  ^</security^>
    echo:^</trustInfo^>
    echo:
    echo:^<asmv3:application^>
    echo:  ^<asmv3:windowsSettings xmlns=^"http://schemas.microsoft.com/SMI/2005/WindowsSettings^"^>
    echo:    ^<ms_windowsSettings:dpiAware xmlns:ms_windowsSettings=^"http://schemas.microsoft.com/SMI/2005/WindowsSettings^"^>false^</ms_windowsSettings:dpiAware^>
    echo:  ^</asmv3:windowsSettings^>
    echo:^</asmv3:application^>
    echo:
    echo:^</assembly^>
)

echo "manifest file generated !"

pause >nul

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.