This library is relatively complete, with a range of widget types. The only feature I could not represent at all was the image map, and the textbox was implemented as a scrolling-list box since there is no multiline text input box in the GUI. The plan was to have that box be editable, as well as displaying a log of actions.

The API exposes a ‘signals’ interface for triggering client behaviour through callbacks, but the specific event location (mouse pos) is not included in the signal, so there is no way for an image map callback to receive the location data. There is a ‘notify’ method on each class which gets the whole event and could be overridden for an image map widget, but that would require subclassing. For now, at least, I am trying to compare libraries using ‘out of the box’ capabilities.

The introductory documentation is scant; I relied on the numerous simple examples and the docStrings. The examples are nicely simple, which is good, but leave essential (even for beginners) features undescribed. A toggle button or checkbox, for example, is only useful if you can query the set/not-set state, but accessing that state is not clearly described anywhere, and took code reading and experimentation to worry it out. OK, you could use the checkbox signal to maintain an external tracking variable, without knowing how the state is maintained internally, but that seems un-robust.

The design included using larger fonts for the title and subtitles, as well as a uniformly white background. These are probably possible using the library, but my half-hour of reading and experimenting did not reveal a way. The style portions of the library are the most weakly documented parts, and all of the examples use the default grey monotype style.

If any of the above is inaccurate, I would be happy to receive specific corrections, and I can revise this post to incorporate additional insight into Ocemp GUI behavior.