How to set anti-aliasing mode for specific gtk+ ap

2019-08-09 01:18发布

问题:

I trying to write simple gtk+ application with pygobject that using gtk.TextView. In stock demo code I see that font sets up with Pango, but I can't find corresponding method for set up antialiasing-mode. By default font looks little ugly for me.

Does anybody know how to set anti-aliasing in gtk+ app (with python or pure C, Pango or other way)?

回答1:

Well, it's not easy. Many factors interact to get the final font glyphs on your screen.

Maybe one of the easiest ways to change antialiasing globally would be to reprogram fontconfig. This article describes how to disable anti-aliasing, but it indicates where the config item is located.

Then, on a per-application basis, the actual work of drawing the characters is in the hands of Pango, but Pango may be programmed to use Xft (fontconfig) or Cairo to do the actual drawing. In case of Cairo (which seems to gather popularity), the anti-aliasing is done there. There's an article on that here on stackoverflow. Basically there's a function in the Cairo library, called 'cairo_set_aliasing'

Edit: Have a look at the XFCE window manager. In ths Settings | Appearance tool, you can change the anti aliasing 'globally', from 'none', 'slight', 'more' to 'full', and select subpixel in color or gray, horizontal/vertical and details. The code is contained in the xfce4-appearance-settings module of XFCE.

The aliasing setup is in xfce4-settings-4.12.0.tar.bz2, in dialogs/appearance-settings/main.c. I'm not sure if it actually activated there. I've quite a lot of work at the moment, but, if necessary can lend you a hand later.