Description: QIrDock is a cool QGraphicsView-based fisheye menu (dock) for Qt applications, whose style and icon effects are fully customizable. This widget is part of QIron toolkit which depends on Qt 4.6 and upper.
A typical use of QIrDock is:
.... MainWindow main; QIrDock * dock = new QIrDock(&main);
Sorry for the delay. But this is gonna take much longer than I thought because I am really really really busy with other mode important projects and my work.
Regards,
I try to build QIron on QT 4.6.1 with Visual Studio 2005 compiler.
Your classes are defined in a namespace, but MOC generator generates *.moc files which uses your classes without this namespace qualifier. So, when these moc files are compled, the compiler shows the errors like: 'blah-blah is not a class or namespace name' (for example for QIrBreadCrumBar class and others)
Can you tell me how to fix this problem?
Thank you.
Tried on linux/mac/winXP/win7 with both QtCreator and qmake.
same errors:
Common\qirobject.cpp:29: error: aggregate 'QIron::QIrObjectList QIron::QIrObjectPrivate::allObjects' has incomplete type and cannot be defined
Common\qirobject.cpp: In static member function 'static QIron::QIrObjectList QIron::QIrObject::allObjects(const QString&)':
Common\qirobject.cpp:68: error: return type 'struct QIron::QIrObjectList' is incomplete
Common\qirobject.cpp:71: error: aggregate 'QIron::QIrObjectList list' has incomplete type and cannot be defined
Common\qirobject.cpp:75: error: template argument 1 is invalid
Common\qirobject.cpp:75: error: invalid type in declaration before '(' token
Common\qirobject.cpp:75: error: request for member 'brk' in '_container_', which is of non-class type 'int'
Common\qirobject.cpp:75: error: request for member 'i' in '_container_', which is of non-class type 'int'
Common\qirobject.cpp:75: error: request for member 'e' in '_container_', which is of non-class type 'int'
Common\qirobject.cpp:75: error: request for member 'brk' in '_container_', which is of non-class type 'int'
Common\qirobject.cpp:75: error: request for member 'i' in '_container_', which is of non-class type 'int'
Common\qirobject.cpp:75: error: request for member 'i' in '_container_', which is of non-class type 'int'
Common\qirobject.cpp:75: error: request for member 'brk' in '_container_', which is of non-class type 'int'
mingw32-make[2]: *** [debug/qirobject.o] Error 1
mingw32-make[1]: *** [debug] Error 2
mingw32-make: *** [sub-src-make_default-ordered] Error 2
what gives?
I don't know what wrong yet. But, give me two days(max) to investigate it and I will drop a new release with fixes.
I know that the current version has some bugs that I already fixed but not dropped yet. Sorry
exact same error im having.
I'm using:
Qt Creator 1.3.1
Based on Qt 4.6.1 (32 bit)
Built on Jan 17 2010 at 02:23:59
From revision 8de178a067
did not test in linux yet
I am having problems during the compilation under Linux such as it can't find include file "private/qpixmapfilter_p.h" in qirdockslyle source file. I saw that it's true, there isn't any file with this name en /usr/include/qt4/qtgui. I am using Qt4.6_RC1.
I am having problems during the compilation under Linux such as it can't find include file "private/qpixmapfilter_p.h" in qirdockslyle source file. I saw that it's true, there isn't any file with this name en /usr/include/qt4/qtgui. I am using Qt4.6_RC1.
This is a qt private file. If you have the SDK only, you have to copy this file yourself in $(QTDIR)\include\Gui\private\ (you may find this file in $(QTDIR)\src\gui\image\). If you use Qt Creator, it should be Ok. This is a known issue on Linux and Mac. It is Ok on Windows OS.
Nice trick even though it won't work every well. Plus, your solution won't look very nice on Windows OS as Qt does not handle Qt::WA_TranslucentBackground properly (child widget won't be opaque as its parent is not, on Windows OS).
However, you can easily use the same code to create your own Dock for Desktop.
I will probably modify QIrDock to become a Desktop dock when it calls setParent(0). But for now, I tick to the current behavior.
I finally compile and test the QIron library, but if I wish to show the dock like yours screenshots, outside any container. How I doit??? Sorry for ask so much but I never seen something like QIron before.
Now I compile the new src and QtCreator shows the compile error:
X:/code/QIron-0.1-preview2/QIron-0.1/src/QIrDock/qirdock.cpp:35: In file included from QIrDock\qirdock.cpp:35:
QIrDock\/QIrDockview.h:94: error: extra qualification 'QIrDockView::' on member 'deferPosEvaluation'
Ratings & Comments
38 Comments
How can I download?
I am fixing all these widgets. Be patient please.
Hello. When can we download new fixed version? :)
Sorry for the delay. But this is gonna take much longer than I thought because I am really really really busy with other mode important projects and my work. Regards,
i know this thread is old, Is there any new updates?
I try to build QIron on QT 4.6.1 with Visual Studio 2005 compiler. Your classes are defined in a namespace, but MOC generator generates *.moc files which uses your classes without this namespace qualifier. So, when these moc files are compled, the compiler shows the errors like: 'blah-blah is not a class or namespace name' (for example for QIrBreadCrumBar class and others) Can you tell me how to fix this problem? Thank you.
Tried on linux/mac/winXP/win7 with both QtCreator and qmake. same errors: Common\qirobject.cpp:29: error: aggregate 'QIron::QIrObjectList QIron::QIrObjectPrivate::allObjects' has incomplete type and cannot be defined Common\qirobject.cpp: In static member function 'static QIron::QIrObjectList QIron::QIrObject::allObjects(const QString&)': Common\qirobject.cpp:68: error: return type 'struct QIron::QIrObjectList' is incomplete Common\qirobject.cpp:71: error: aggregate 'QIron::QIrObjectList list' has incomplete type and cannot be defined Common\qirobject.cpp:75: error: template argument 1 is invalid Common\qirobject.cpp:75: error: invalid type in declaration before '(' token Common\qirobject.cpp:75: error: request for member 'brk' in '_container_', which is of non-class type 'int' Common\qirobject.cpp:75: error: request for member 'i' in '_container_', which is of non-class type 'int' Common\qirobject.cpp:75: error: request for member 'e' in '_container_', which is of non-class type 'int' Common\qirobject.cpp:75: error: request for member 'brk' in '_container_', which is of non-class type 'int' Common\qirobject.cpp:75: error: request for member 'i' in '_container_', which is of non-class type 'int' Common\qirobject.cpp:75: error: request for member 'i' in '_container_', which is of non-class type 'int' Common\qirobject.cpp:75: error: request for member 'brk' in '_container_', which is of non-class type 'int' mingw32-make[2]: *** [debug/qirobject.o] Error 1 mingw32-make[1]: *** [debug] Error 2 mingw32-make: *** [sub-src-make_default-ordered] Error 2 what gives?
I don't know what wrong yet. But, give me two days(max) to investigate it and I will drop a new release with fixes. I know that the current version has some bugs that I already fixed but not dropped yet. Sorry
exact same error im having. I'm using: Qt Creator 1.3.1 Based on Qt 4.6.1 (32 bit) Built on Jan 17 2010 at 02:23:59 From revision 8de178a067 did not test in linux yet
doesn't work in linux too, with same version of qt/qmake as the above post.
Will check and fix it as soon as. But I am currently working on several projects. So please, give a weekend to handle your requests. Regards
I am having problems during the compilation under Linux such as it can't find include file "private/qpixmapfilter_p.h" in qirdockslyle source file. I saw that it's true, there isn't any file with this name en /usr/include/qt4/qtgui. I am using Qt4.6_RC1.
I am having problems during the compilation under Linux such as it can't find include file "private/qpixmapfilter_p.h" in qirdockslyle source file. I saw that it's true, there isn't any file with this name en /usr/include/qt4/qtgui. I am using Qt4.6_RC1.
This is a qt private file. If you have the SDK only, you have to copy this file yourself in $(QTDIR)\include\Gui\private\ (you may find this file in $(QTDIR)\src\gui\image\). If you use Qt Creator, it should be Ok. This is a known issue on Linux and Mac. It is Ok on Windows OS.
Where I can get QIron documentation ?
It is partially complete.
It doesn't work, anyway I become fan of QIron
What's wrong with the last package? Build errors?
there is not build errors, I test QIron just fine on a Widget, but I want to show the QIron bar outside any widget.
This feature is not supported yet.
MainWindow *widget = new MainWindow(); QIrDock *dock = new QIrDock(widget); .... Qt::WindowFlags flags = 0; flags |= Qt::FramelessWindowHint; flags |= Qt::WindowStaysOnTopHint; widget->setWindowFlags(flags); widget->setAttribute(Qt::WA_TranslucentBackground,true);
Nice trick even though it won't work every well. Plus, your solution won't look very nice on Windows OS as Qt does not handle Qt::WA_TranslucentBackground properly (child widget won't be opaque as its parent is not, on Windows OS). However, you can easily use the same code to create your own Dock for Desktop. I will probably modify QIrDock to become a Desktop dock when it calls setParent(0). But for now, I tick to the current behavior.
I finally compile and test the QIron library, but if I wish to show the dock like yours screenshots, outside any container. How I doit??? Sorry for ask so much but I never seen something like QIron before.
Try this ... //main.cpp #include <QIrDock> #include <QIrParabolicEffectManager> #include <QIrStyledDockStyle> #include <QApplication> #include <QWidget> int main(int argc, char * argv[]) { QApplication app(&argc,&argv); QWidget widget; widget.resize(600,600); QIrDock * dock = new QIrDock(&widget); dock->setSubStyle(new QIrStyledDockStyle); dock->setEffectManager(new QIrParabolicEffectManager(dock)); .... Add some docklets here... widget.show(); app.setQuitOnLastWindowClosed(true); return app.exec(); }
Now I compile the new src and QtCreator shows the compile error: X:/code/QIron-0.1-preview2/QIron-0.1/src/QIrDock/qirdock.cpp:35: In file included from QIrDock\qirdock.cpp:35: QIrDock\/QIrDockview.h:94: error: extra qualification 'QIrDockView::' on member 'deferPosEvaluation'