Difference between revisions of "User:Zeljan"
Line 41: | Line 41: | ||
'''TODO FOR NEXT QT BINDINGS RELEASE - BASED ON MINIMUM Qt-4.6 (reminder for Den Jean)''' | '''TODO FOR NEXT QT BINDINGS RELEASE - BASED ON MINIMUM Qt-4.6 (reminder for Den Jean)''' | ||
− | *Add next classes: QTextBlock, QTextBlockFormat, QTextFormat, QTextLayout, QTextLine, QShortcut, QGesture, QGestureEvent, QGestureRecognizer, QPanGesture, QPinchGesture, QTapAndHoldGesture, QTapGesture, QSwipeGesture, QTouchEvent. | + | *Add next classes: QTextBlock, QTextBlockFormat, QTextFormat, QTextLayout, QTextLine, QShortcut, QGesture, QGestureEvent, QGestureRecognizer, QPanGesture, QPinchGesture, QTapAndHoldGesture, QTapGesture, QSwipeGesture, QTouchEvent.<br> |
+ | *Maybe add OpenGL (QGLxxxx classes), but only if it can be separated in different unit and different C bindings, so loaded only on demand (for lazarus TOpenGLControl). See http://bugs.freepascal.org/view.php?id=15589 .<br> | ||
Revision as of 13:56, 4 September 2010
This is my page ? ;) Hi I'm Zeljan Rikalo (everybody calls me Zeljko), currently trying to finish qt4 interface for lazarus. Any feedback about qt-lcl from linux,win32 or mac is welcome (patches also). All about Qt interface you can find at
- http://wiki.lazarus.freepascal.org/index.php/Qt_Interface
- Mailing list: http://lists.lazarus.freepascal.org/mailman/listinfo/qt
- Blog about lazarus development http://lazarus-dev.blogspot.com/
- Nice explanation QImage vs. QPixmap graphic operations http://techbase.kde.org/Development/Tutorials/Graphics/Performance
- Qt environment variables: http://qtunderground.org/wiki/Qt_Environment_Variables
NEWS (dd.MM.yyyy)
- 29.09.2009 as of lazarus r 21913 qt-4.5.XX is default , minimum bindings version is 1.72. No more USE_QT_XX defines
- 18.09.2008 Trolltech released qt-4.4.2. Changes: http://trolltech.com/developer/notes/changes/changes-4.4.2/
Fixed many bugs & regressions.
- 31.08.2008 I'm testing 4.4.X for about two weeks (4.4.2 snapshots currently - 4.4.1 have some nasty bugs).
It looks much better than 4.3.XX - no flickering, faster, fixed some ugly QPainter bugs, fixed event queue bug (now I reverted QEventFocusIn & QEventFocusOut into my local svn copy (svn r. 14361)). Lazarus IDE feels much better with 4.4.X than with 4.3.X. There's no special changes for 4.4, only r.14361 is out of game.
- 22.02.2008 Trolltech released qt-4.3.4. Changes: http://trolltech.com/developer/notes/changes/changes-4.3.4/
Fixes for QCoreApplication events, QComboBox crash fixed ...
- 05.12.2007 Trolltech released qt-4.3.3. Changes: http://trolltech.com/developer/notes/changes/changes-4.3.3/
QPainter supports justified text in overloaded QPainter::drawText() Fixes for QMainWindow, QMdiArea, QMdiSubWindow. Fixes QPixmap bug with scaling & shifting by half a pixel. Fixes for QFileDialog, QListView, QTreeView etc .... Looks like a nice update.
- 03.10.2007 Trolltech released qt-4.3.2. Changes: http://trolltech.com/developer/notes/changes/changes-4.3.2/
- 01.10.2007 I've compiled & used Lazarus Qt IDE on intel Mac. Screenshoot is here http://wiki.lazarus.freepascal.org/Image:macosxqt.png
- 07.08.2007 Trolltech released qt-4.3.1. Changes are here http://trolltech.com/developer/notes/changes/changes-4.3.1/
My TODO list
Fix MDI part of Qt since DnD doesn't work inside mdichilds (it cannot since MDIChild have to be a child MDIForm (LCL part)).(0.9.27)fixed in r23416Prepare changes for qt 4.4.X series (0.9.27), probably when 4.4.3 released, or even wait for 4.5.X, cause RasterOps are inside 4.5.
KNOWN BUGS IN QT-4.5.3 - (visible in LCLQt)
Plastique,Cleanlooks style - combobox, checkbox doesn't show focus rect when focused by pressing ENTER and SelectNext(ActiveControl, True, True) from another control (TAB KEY WORKS OK) - have patch for Qt.fixed as of qt-4.6.0- WindowsXP style - checkbox doesn't show focus rect for same reason as Plastique checkbox. - have patch for Qt.
QStatusBar - size grip & last item isn't visible (if we have few items) if our main window started as wsMaximized. Issue submitted to Qt http://bugreports.qt.nokia.com/browse/QTBUG-4334fixed with qt >= 4.6.2.
TODO FOR NEXT QT BINDINGS RELEASE - BASED ON MINIMUM Qt-4.6 (reminder for Den Jean)
- Add next classes: QTextBlock, QTextBlockFormat, QTextFormat, QTextLayout, QTextLine, QShortcut, QGesture, QGestureEvent, QGestureRecognizer, QPanGesture, QPinchGesture, QTapAndHoldGesture, QTapGesture, QSwipeGesture, QTouchEvent.
- Maybe add OpenGL (QGLxxxx classes), but only if it can be separated in different unit and different C bindings, so loaded only on demand (for lazarus TOpenGLControl). See http://bugs.freepascal.org/view.php?id=15589 .
Painting of qt controls with HasPaint=FALSE inside qtlcl
- procedure SlotPaint() should be function SlotPaint() with Result from paint message eg. Result := Msg.Result <> 0;
That says that qt will not paint that control (event filter resulted with True result).This works as expected, but not sure about impact on qt or bindings when setting result to true in such way - must test it.
- This is example of overrided TQtLineEdit.EventFilter.Don't forget to change SlotPaint() into function
and add Result := Msg.Result <> 0; after you process paint event.
<delphi>
function TQtLineEdit.EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
begin
Result := False; if LCLObject = nil then exit; // TQtLineEdit have HasPaint := False, so only qt draws it // but we can do whatever here if (QEvent_type(Event) = QEventPaint) then begin BeginEventProcessing; // eg. this makes default qt paint of our control // after this call we can do something more inside our SlotPaint // and set result to true. // As a result we have native control on screen with eg.small red triangle in // controls corner which we painted after control was painted by qt. // If we don't set Result to true in this case, our control will be // repainted by qt again ,and we wan't see small red triangle in corner // of our control. // if SomeFlagOnOurControl then // begin // QObject_event(Widget, Event); // SlotPaint(Sender, Event) // Result := True; // end else // begin // In this case: if result of SlotPaint is false - qt draws control, otherwise // we already done that. Result := SlotPaint(Sender, Event); QEvent_setAccepted(Event, not Result); EndEventProcessing; // end end else Result:=inherited EventFilter(Sender, Event);
end; </delphi>