用Qt4编译Qt3的源代码
。。。。我现在在从新编译Qt4 呵呵(很漫长的时间)
在网上看到一些贴子,一些初学者因为用Qt3的代码
如:
a.setMainWidget(w);
这代码无法在Qt4下编译。
刚学Qt4的人常常看到的是Qt3的源代码,其实可以用Qt4来编译Qt3的源代码。
Qt3 code port to Qt4
Come on!!! Let's go go go!
现在先介绍要用到的东西
我手里有个Qt3很简单的原代码,这是网上的QT初学者发给我,要我帮他(好像写“她”啊,QT国度里面有几个MM的QQ,不知
道是不是穿的马甲,好希望有学QT的MM)调试一下的。
也许这代码没有什么代表性,从Qt3到Qt4转换的角度来说。它实现的是自定义个slot()来退处程序,当然这是多余的,有
close()在,呵呵,只是用来演示singal()和slot()的。(Qt高手请不要见笑,好歹是初学着)
代码如下:
exit.h
************************************************************
#ifndef EXIT_H
#define EXIT_H
#include <qwidget.h>
class QPushButton;
class MyMainWindow:public QWidget
{ Q_OBJECT
public:
MyMainWindow();
public slots:
void MyExitSlot();
public:
QPushButton *MyButton;
};
#endif //
************************************************************
exit.cpp
************************************************************
#include<qfont.h>
#include<qpushbutton.h>
#include "exit.h"
void MyMainWindow::MyExitSlot()
{
exit(0);
}
MyMainWindow::MyMainWindow()
{
setGeometry(100,100,200,170);
QPushButton *MyButton=new QPushButton("RUN",this);
// here MyButton=new QPushButton("RUN",this);
MyButton->setGeometry(20,20,160,80);
MyButton->setFont(QFont("Times",18,QFont::Bold));
connect(MyButton,SIGNAL(clicked()),this,SLOT(MyExitSlot()));
}
**********************************************************
main.cpp
***********************************************************
#include<qapplication.h>
#include"exit.h"
int main(int argc,char **argv)
{
QApplication a(argc,argv);
MyMainWindow *w = new MyMainWindow;
a.setMainWidget(w);
w->show();
return a.exec();
}
***************************************************
1。要确保你的Qt3的代码子在Qt3下可以正确的编译和运行。
2。运行 qmake -project 生成.pro文件。
内容如下:
######################################################################
# Automatically generated by qmake (2.00a) ??? ?? 22 00:59:39 2005
######################################################################
TEMPLATE = app
DEPENDPATH += .
INCLUDEPATH += .
(here 括号内为加代码的地方)
# Input
HEADERS += exit.h
SOURCES += exit.cpp main.cpp
中间加入一句
QT += qt3support
3。运行 qt3to4 exit.h exit.cpp main.cpp (后面是你要转换的代码)
4。 当然是make (等待.......编译Qt4的opensource版我等了两个小时)
这样,qt3的原代码就编译好了
可以运行了。
上面的qt3to4是将Qt3代码转换成Qt4代码的工具。
在上面的代码中,没有转化什么东西。
但是在Qt3代码中,QListBox 就会转化成 Q3ListBox
希望大家在Qt的世界中快乐!
希望这篇文章对和我一样的初学者有帮助。
如有错误请高手指正。
[ 此贴被acefunware在2005-08-23 12:12重新编辑 ]