从在QT中找不到QVBOX类到QT4与QT3的兼容(转载)

    在http://www.qiliang.net/qt/tutorial1-03.html上学习qt技术,但是在用到第三个实例的时候就发现好多东西用不了了,后来一查才发现,这个教程上面的都是qt3的,而自己现在的QT是QT4版本了。后多原来qt3的类都不在了。但是想想又有点不对劲啊,哪有新版本全部否定老版本的啊,这不是砸自己的脚吗?后来又查了下,才发现qt4还是支持qt3的。QT4中提供了大量新控件,也保持了旧的控件,并命名为Qt3XXX,并且全都放到“\qt\include\Qt3Support”这个文件夹下面去了,哪些没有被修改的控件则继续放在原来的文件夹下面。在上一篇博文中我们介绍了在建项目的时候要“select required modules”,我们如果要使用qt3中的文件,我们就要在“Qt3Support modules”前面打钩,将这个选中就可以了。

下面是qt3与qt4的举例

qt3下面的源程序是:

#include <qapplication.h>
#include <qpushbutton.h>
#include <qfont.h>
#include <qvbox.h>
int main( int argc, char **argv )
{
    QApplication a( argc, argv );
    QVBox box;
    box.resize( 200, 120 );
    QPushButton quit( "Quit", &box );
    quit.setFont( QFont( "Times", 18, QFont::Bold ) );
    QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
    a.setMainWidget( &box );
    box.show();
    return a.exec();
}
在qt4中修改为:

#include

#include

#include

#include

 

int main( int argc, char **argv )

{

QApplication a( argc, argv );

Q3VBox box;

box.resize( 200, 120 );

QPushButton quit( "Quit", &box );

quit.setFont( QFont( "Times", 18, QFont::Bold ) );

QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );

a.setMainWidget( &box );

box.show();

return a.exec();

}