GUI toolkits

The advantage of a GUI toolkit. Object oriented programming.

Blender lacks a GUI toolkit.

These pages present several Graphical User Interface (GUI) toolkits that I have evaluated for use with Bender. Only toolkits that support multiple platforms are listed here.

Some of these toolkits are commercial, others are GPL or LGPL. Some of them are toolkits only while others are part of a larger project (such as a game engine or a game level editor).

background

There are basically two types of multi-platform toolkits. They can be divided in their use of the widgets (for example controls such as radio buttons sliders, buttons, etc.). First there are toolkits that use platform native widget sets (PN). Then there are toolkits that use platform independent widget sets (PI). The advantage of PI toolkits is that the look and feel of applications build with them is consistent on all platforms (the Blender way). This can also be a disadvantage in that users are confronted with look and feel different from the one they are used to. Another advantage of PI toolkits is that application development is easier since GUI design issues are not platform dependent.

PN toolkits face the problem that widget sets are not consistent on all platforms. In other words, not all widgets found on platform X are available on platform Y and vice versa. Some toolkits take the least common demoninator approach: they only provide the widgets found on all platforms. Others emulate widgets that are not found on a praticular platform. For example, if a platform does not have a hierarchical tree list, the toolkit will provide one for that platform. Another basic problem is that consistent layout of controls is difficult since the controls can have different dimensions on different platforms.

Blender wishes and requirements

platform independent

Python binding

comparing the toolkits

There are many cross-platform GUI toolkits available (for a comprehensive list, have a look at this detailed overview of GUI toolkits). For our analysis, we will make a pre-selection based on the following requests:

The following features of toolkits are listed: