• 15241阅读
  • 6回复

【原创】用Qt4编译Qt3的源代码 [复制链接]

上一主题 下一主题
离线acefunware
 

只看楼主 倒序阅读 楼主  发表于: 2005-08-22
用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重新编辑 ]
email:acefunware@yahoo.com.cn
blog:http://acefunware.shineblog.com
离线XChinux

只看该作者 1楼 发表于: 2005-08-22
在QT4里有个工具专门做移植的,可以看看那里,我和没详细看呢
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线acefunware

只看该作者 2楼 发表于: 2005-08-22
这个工具就是qt3to4啊
我上面用到了
email:acefunware@yahoo.com.cn
blog:http://acefunware.shineblog.com
离线XChinux

只看该作者 3楼 发表于: 2005-08-22
楼主可以把你的那几个标识

作者:acefunware
email:acefunware@yahoo.com.cn
blog:http://acefunware.shineblog.com

也加到签名档里。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线thmono
只看该作者 4楼 发表于: 2009-10-28
学习了
离线melindali
只看该作者 5楼 发表于: 2010-03-18
以下一些操作都要在  qt command prompt    里面运行吗?新手不懂就别见笑呀

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版我等了两个小时)
离线xixiguo
只看该作者 6楼 发表于: 2012-11-07
回 楼主(acefunware) 的帖子
代码转换后成 Q3ListBox,再用qt4编译怎么会说没有这个文件。假如果真没有,在哪里可以找到呢
快速回复
限100 字节
 
上一个 下一个