Here is a list of (major) changes in Qt from 0.93 to 0.95.

Bug-fixes, optimizations and much improved documentation, of course.

There are few changes in the API (Qt header files).


QPixmap:
--------
  Can draw transparent pixmaps. Call QPixmap::setMask(QBitmap) to
  set a mask.


QPainter:
---------
  Unified transformation. setWindow() and setViewport() now use
  the same code as setWorldXForm() etc.
  Internal xform routines have been optimized.


QButton:
--------
  isUp() is obsolete, use !isDown() instead.
  isOff() is obsolete, use !isOn() instead.
  switchOn() is obsolete, use setOn(TRUE) instead.
  switchOff() is obsolete, use setOn(FALSE) instead.


QPushButton:
------------
  A push button can now be a toggle button.


QWidget:
--------
  isActive() was never used and is now obsolete.


QTextStream:
------------
  eos() renamed to eof() for iostream compatibility.
  operator>> for double, float, char*, QString are implemented
  get() and getline() added.


QDataStream:
------------
  eos() renamed to eof() for iostream compatibility.


QImage:
-------
  Scanline data is aligned on a 32 bit boundary (it used to be 8
  bits). Conversion to and from QPixmap is now faster.
