Thursday, December 23, 2004

Qt Designer redux; KFormDesigner

reading my recent entry regarding Qt Designer in Qt4 it occurred to me that i'd come off sounding a bit harsh. primarily this is due to the fact that i love that bit of software so much that i'm pretty protective of it =)

that said, i'm very aware that it's alphaware at the moment. i really like some of the new directions, and alphaware isn't meant to be unquestionably adored (otherwise it'd be stamped for Fianl Release, right?).

but what i wasn't aware of is that Roberto (who's a cool guy in general, btw =) has only been working on it for about 5 months. holy crap! that's a pretty impressive achievement for one person in 5 months. hopefully Roberto will read what i wrote and pick out the good points, toss the points he thinks i'm off the mark on, and spend the next 5 months making it Seriously Kick Ass.

he's got probably at least that much time left before i expect Qt4 to be Ready(tm), by which i mean a bug fix release or two after 4.0 sees the light of day.

go Roberto!




i was asked to provide some comments on KFormDesigner, the Qt Designer like app that comes with Kexi to design forms. it's meant to serve a similar function to the form designer in MS Access as far as i know. and to that end it does a pretty good job.

it follows the style of Qt3's Designer: MDI with toolboxes. but it's very minimal. it's great for whipping up basic forms for things like database apps, but it's not suited for general application development.

it has the nicer layout management that Qt4 Designer shows (add and move objects around without breaking layouts), though i don't know why they hide the layout options in a menu. they belong on the toolbar as much as any widget does as they are very commonly used. GUI designer apps are, IMHO, allowed to break the "keep the toolbars simple" rule-of-thumb because they are meant to be programmer's tools. as it is, there are already a crap load of icons, a few more won't hurt. =)

it is a bit odd, though, that while the layout buttons aren't on the toolbar, there's a combobox for switching styles on the fly! priorities seem a bit off here. i'd put the layout tools on the toolbar before a widget style switcher. i'd also break up the one big widget toolbar into a few smaller ones to make it possible to arrange them as desired.

i do like that they've kept to a fair minimum of widgets. they only show the KDE versions of Qt widgets, not both. obviously Qt Designer can't do this, but it would be nice if Designer allowed one to at least hide certain widgets. however, this spartan approach makes KFormDesigner, more than anything else, not useful for general application development. but this is a fine compromise to make since that isn't the purpose of this app, it's to make database forms.

same goes for the inability to make anything but a QWidget form. no dialogs, wizard, etc. "New" makes a new qwidget form, period. this is perfect for database apps, not so hot for app devel.

there are a number of other flaws, though, which goes to show how difficult it is to write an app of this sort. for instance, although KFormDesigner uses toolbars it doesn't allow one to double click on an item to keep that tool selected for multiple use. when you preview a form it doesn't show the effects of signal/slots connections made in the GUI (something that's always endeared Designed to me). repainting is done far too often, resulting in horrid flickerfests.

Shift+Delete removes a widget, though the context menu doesn't allude to this; i almost thought there wasn't a shortcut after Delete on its own didn't work. i don't know why Delete isn't enough: that's why we have Undo/Redo.

speaking of which, Undo/Redo behaves oddly at times. the worst behaviour is that it causes the the form to resize at times. and why are there widget alignment tools? isn't that what layouts are for? seems like a confusion of paradigms. the tab order editor is a bit clunky.

i also found that it was prone to the occasional crash. i know it's very hard to get this sort of app rock solid, but rule #1 of an editor is never to crash. you're carrying someone's unsaved work after all.

however, i do like the improved layout management and i really, really like that it puts you into edit mode after creating a widget automagically since that's exactly what one does 98% of the time anyways: create a button, change its label; create a label, change its text; etc... the signal/slot connection mechanism is also quite nice: click 'n pick, click 'n pick.

it would be nice if selecting a widget would show all it's connections graphically, ala what Qt4 Designer does but only for the selected widget (versus ALL of them at once, which is a nightmare).

in all, KFormDesigner seems to be shaping up to be quite a nice tool for database app design. i look forward to seeing a polished version of it, then maybe i can start convincing people here to move off of Access ;-)

2 comments:

Anonymous said...

I am the author of KFormDesigner and I would like to make some comments about this blog.
First, thanks for reviewing kfd, it's always nice to have feedback from experienced users.

I would like to remind you that KFormDesigner is just a test app, which is still beta. So I haven't work a lot on kfd itself, but more on the libs and general features (that's why there is eg widgets align functions, which will be used more in Kexi report plugin).
Most lacking feature (eg missing widgets, only QWidgets can be created ...) are not there because I haven't work on this yet. But this could be done quite easily (the framework is almost ready) and quickly.

Furthermore, you're right about the buttons in toolbar, I'll change it soon. And I'll try to fix some remaining bugs if I can find enough time and motivation to work on kfd after school work.

tweedledeetweedledum said...

This blog is awesome! If you get a chance you may want to visit this anti virus software site, it's pretty awesome too!