您的位置:首页 > 编程语言 > C语言/C++

在Visual C++ 6.0的环境下,编写Qt程序

2007-11-12 19:51 501 查看
1.通过命令行编译

1).设置环境变量

PATH = D:\Qt\4.1.1\bin

QMAKESPEC = win32-msvc

然后打开一个命令窗口(如果在设置环境变量之前已经打开,需要关闭重新打开,因为刚才环境变量不起作用),检查一下设置是否正确:

C:\> qmake -v

QMake version 2.01a

Using Qt version 4.3.2 in D:\Qt\4.3.2\lib

C:\> echo %QMAKESPEC%

win32-msvc

2).建立一个目录,就是打算放置源代码的位置,在这个目录下面创建文件,名为hello.cpp,输入如下代码:

#include <QApplication>

#include <QLabel>

int main(int argc, char **argv)

{

QApplication app(argc, argv);

QLabel *label = new QLabel("Hello World!");

label->show();

return app.exec();

}

3).编译代码
在这个目录下面,键入"qmake -project -o hello.pro",产生Qt的工程文件.

然后,键入"qmake",产生Makefile文件.

键入"nmake",编译Makefile文件.

编译好的可执行文件,在debug或release目录下面.


2.通过designer.exe来设计界面


1).通过designer创建一个对话框,保存在工程目录下面,取名为hello.ui

2).创建hello.h文件,代码为:

#include <QApplication>

#include <QDialog>

#include "ui_hello.h"

class HelloForm : public QDialog, public Ui::Dialog

{

Q_OBJECT

public:

HelloForm(QWidget * parent = 0);

};

3).创建hello.cpp文件,代码为:

#include "hello.h"

HelloForm::HelloForm(QWidget *parent)

: QDialog(parent)

{

setupUi(this);

}

int main(int argc, char **argv)

{

QApplication app(argc, argv);

HelloForm *form = new HelloForm();

form->show();

return app.exec();

}

4).按照下面的顺序编译运行:

qmake -project -o hello.pro

qmake

nmake

./debug/hello.exe

注意:含有Qt界面的C++类声明不能在.cpp文件中完成,否则会出现连接不过的情况(moc好像不能正确处理cpp文件里面的类声明)。

还有另一种加载ui的方法:

hello.h内容如下:

#include <QApplication>

#include <QDialog>

#include "ui_hello.h"

class HelloForm : public QDialog//, public Ui::Dialog

{

Q_OBJECT

public:

HelloForm(QWidget * parent = 0);

private:

Ui::Dialog ui;

};

hello.cpp内容如下:

#include "hello.h"

HelloForm::HelloForm(QWidget *parent)

: QDialog(parent)

{

ui.setupUi(this);

// setupUi(this);

}

int main(int argc, char **argv) {

QApplication app(argc, argv);

HelloForm *form = new HelloForm();

form->show();

return app.exec();

}

编译,运行方式同上。

3.通过VC IDE来编写程序

产生工程的时候,通过命令“qmake -tp vc -o hello.dsp hello.pro”来产生,这时候,就在目录下面生成了"hello.dsp"的VC工程文件。

用VC的IDE就打开就可以编译运行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: