Qt – Promoting widgets in Qt Creator

promotingqtqt-creator

Qt creator has option to promote one widget to customly created class that derives from base widget – I want to use that to promote widget to class in current project. Qt creator asks me about class name and header filename, and those value go directly to *.ui file, and then to ui_myform.h – the problem is that this file might be (and usually is) generated outside source tree (in build tree) which can be at arbitrary location, so direct specification of path in promoting window will not help. How to let QtCreator/uic know where to look for right header? Is it even possible?

Perhaps there is some Qt variable specyfying location of source tree, that I could insert in header filename field?

I am using self-compiled QtCreator 2.0.1 + self-compiled Qt 4.7.1.

EDIT:

Why can't you just type in the complete path name of the header file?

What if I will move source tree, or even share it on the web – then everybody who wants to compile my project would have to edit this path either in Qt creator or in source files – both are unacceptable.

Best Answer

The header file that Designer asks you for in the promotion dialog is YOUR own header file that define the custom widget, not the generated ui_*.h file.

Say you want to promote a plain QWidget to MyCustomWidget, you must already have a MyCustomWidget.h that defines your MyCustomWidget class included in your .pro file like this:

HEADERS  += MyCustomWidget.h

And in the widget promotion dialog, just type in MyCustomWidget.h. The purpose of it is so the generated ui header file (wherever it is) can include YOUR class definition.

Related Topic