Why we shouldn't install header files created by UIC
Tobias Erbsland
terbsland at printsoft.ch
Thu Apr 7 07:53:10 UTC 2005
Hello
> As I'm going through and changing the main settings widget to look nicer
> (screenshot at
> http://www.sourcextreme.com/projects/kdevelop/newmainsettings.png), I've
> noticed that we're installing a header file that's based of a .ui file and
> calling it public API (i.e. we're not saying these headers are private and
> they shouldn't be used). There are several reasons why this is bad, and
> here's the two that i can think of ATM:
> (...)
> The solution to this is to create a new class that contains a pointer to
> the UIC generated class and make this class part of the public API.We can't
> base the new class off of the UIC generated class because you'll still run
> into the above two points. Anyways, i still plan to go forward with my
> changes, so i hope nobody cares that we're breaking BC.
This is solved anyway with Qt4.0. In Qt4.0 the UIC is generating a class in a
special namespace "Ui". This class has the method "setupUi()" which is called
from your constructor.
class Foo : public QWidget
{
Foo();
private:
Ui::Foo ui;
}
Foo::Foo()
: QWidget()
{
ui.setupUi( this );
}
best regards
Tobias
More information about the KDevelop-devel
mailing list