MITK BlueBerry FAQ

From mitk.org
Revision as of 16:44, 18 July 2012 by CasparGoch (talk | contribs) (CHG: Updated some information)
Jump to navigation Jump to search

FAQ - BlueBerry / MITK / Qt3 / Qt4

Feel free to post any questions which are not covered in this FAQ to mitk-users@lists.sourceforge.net (subscription required).

What is BlueBerry and what is its relationship to MITK?

BlueBerry is an application framework, which is used to build the new Qt4 based MITK applications. It has no dependencies on MITK and can be used to build arbitrary, modularized applications. MITK as a toolkit does not depend on BlueBerry, but if you want to use or extend the Qt4 ExtApp, you need to build BlueBerry.

I want to build Qt4 applications using MITK, do I need BlueBerry?

To build your own applications with MITK and Qt4, you do not need BlueBerry. MITK provides many Qt4 widgets tailored for medical applications, which are available as a shared library (libQmitk). The MITK Tutorial shows you how to build standalone Qt4 applications using MITK.

However, if you intend to build larger applications, or if you want to use existing MITK plug-ins, you should use BlueBerry (for example by using the Qt4 ExtApp).

I want to start developing with MITK, shall I use Qt3 or Qt4?

Well, the answer largely depends on what you intend to do. If you are going to develop your own application from scratch, there is no reason not to choose Qt4. If you are looking for a stable application which you can extend with your own code, you may still want to use the Qt3 MainApp. It has been developed for years and is therefore more stable than the new Qt4 version. Converting simple Qt3 functionalities to the new Qt4/BlueBerry plug-in system is relatively painless. Internally, we are moving all Qt3 code to Qt4, so you can expect the application framework to mature fast.

Update: The code is by now mostly complete by now and the Qt4 ExtApp has been tested and is stable. It is no longer recommended to use the Qt3 MainAp. If you still do we migth not be able to help you as a lot of improvements have been incorporated in the Qt4 version.

Is there any functional difference between the Qt3 and Qt4 MainApp?

Yes. The Qt4 ExtApp (formerly MainApp) will exceed the capabilities of the Qt3 MainApp. However, we still have some things to finish and hence the Qt4 ExtApp right now lacks some features of the old one (especially, the menu and toolbar infrastructure, aka Command framework is not finished yet).

I am using Qt4, but I can't find ExtApp

Make sure the CMake variable MITK_USE_BLUEBERRY is set to ON (this is the default). Without BlueBerry, the ExtApp cannot be build.

I don't want to learn all this new stuff, what shall I do?

You don't have to learn a lot of the new concepts. If you don't care about them, just don't use them. However, if you intend to build larger applications you are strongly advised to investigate the possibilities of BlueBerry and how it can help you to modularize your code. For faster prototyping, MITK provides a tool which generates a plug-in skeleton for you which can be compiled and integrated into the Qt4 ExtApp out of the box.

How can I extend the Qt4 ExtApp?

Follow the steps in the How to create a new MITK plug-in document.