6 Sep 2002 movement   » (Master)

Been spending far too long dealing with Qt problems and weirdness in the LyX Qt port. Here's a random selection of some of the bugs I've been dealing with :

  • WType_Modal is being ignored for QListBox (and you have to derive - setWFlags() is protected)
  • For some reason Qt is adding lots of blank entries to the QListBox for no reason
  • There is no simple way to handle single-click QListBox style widgets
  • QWidgetStack is not performing geometry management vertically at all
  • QListBox geometry management is broken
  • QDialogs cannot be WDestructiveClose (fixed in 3.0.5)
  • QTextViews in tabs do not manage their natural geometry properly.
  • QMenuBar::activated() isn't working in Qt 3
  • There is no way to get server DPI without having a widget/QPaintDevice
  • The menu stuff uses an undocumented internal class in its API
  • Qt's keyboard handling is seriously awkward
  • QAction cannot handle sequences (fixed in 3.1beta)
  • You cannot distinguish between Qt::Key_A and Qt::Key_a (but can with Agrave vs. agrave)
  • image rotation clips wrongly and fills with white instead of transparent pixels
  • image handling makes dealing with b/w vs. colour etc. very awkward
  • Qt provides no way to integrate select() handling
  • Removing all items from a menubar incurs updates even with setUpdatesEnabled(false)

I could go on. It's starting to prove a serious hindrance. My hope that moving away from xforms would reduce the time spent dealing with toolkit b0rkenness is looking a bit silly now. Add onto this all the annoying but ultimately not too painful bogosities of moc and it's making me weep.

I really need somebody with real Qt battle scars to help out with this. Kalle, come back ! All is forgiven (or forsaken).

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!