Qt里的.ui

本文将使用简单的几个步骤说明在VC 2005下如何编译安装并开发QT应用程序:

一、下载及安装

1. 下载,直接找官网下载就可以了,我的是qt-win-opensource-4.4.3-mingw.exe;

2. 设置环境变量:

我的电脑>属性>高级>环境变量>用户变量里面设置几个变量(我把QT装在了D盘中):


PATH中增加D:/Qt/4.4.3/bin(如果没有就创建);

创建QMAKESPEC值为 win32-msvc2005,这个值还是根据你要生成的Vs版本,6.0 使用win32-msvc, 2003 使用win32-msvc.net, 2005就是 win32-msvc2005 ;

创建QTDIR值为 D:/Qt/4.4.3

 最后为了使的你刚才修改的环境变量生效,重启cmd,可以通过C:/>qmake -v来看你使用的QT版本。

3. 从VC 2005的安装路径找到vsvars32.bat(以你自己的安装目录为准),例如:在E:/Program Files/Microsoft Visual Studio 8/Common7/Tools,运行cmd,

C:/> E:
E:/>Program Files/Microsoft Visual Studio 8/Common7/Tools> vsvars32.bat 
D:/> cd D:/Qt/4.4.3
D:/Qt/4.4.3> configure -debug-and-release -static
D:/Qt/4.4.3> nmake

       configure -debug-and-release -static参数的意义是告诉QT同时编译为Debug和Release两个版本的静态链接库,不指定参数则编译为Debug版本的动态链接库,但是最新版本的QT4.5不建议编译成static,一般编译会出错的 ,如果安装了多个版本的VS可以加上-platform win32-msvc2005(表示VS2005的),6.0 使用win32-msvc, 2003 使用win32-msvc.net, 2008就是 win32-msvc2008.configure大约需要十几分钟,nmake则大约需要2小时左右,视你的电脑性能而定(但是我编译的时候用了大概3个多小时吧,不过我的电脑是奔4-2.0的,完全编译大概需要10G的空间,如果nmake前把examples和demos移到别的目录下,就会节省空间了,4.5版的大概2G左右,以后想运行例子可以单独nmake,不过这样编译等到编译examples目录下的文件时nmake就会报错跳出,其实这就算是编译完了)。

4.最后编译完成后运行nmake confclean命令清除编译过程中的临时文件,以节省空间;


5. 将Qt路径添加到VC编译环境中,工具->选项->项目和解决方案->VC++目录,在包含文件一栏添加: D:/Qt/4.4.3/include/QtGui;

D:/Qt/4.4.3/include/QtCore;

D:/Qt/4.4.3/include,在库文件一栏添加D:/Qt/4.4.3/lib;

二、交叉编译

1. 启动VC,创建一个Hello工程(空的CONSOLE),将工程设置改为使用多字节字符集,因为Qt Application的入口函数不是Unicode的;

2. 启动Qt Designer,新建窗体->选择对话框窗体(第一个选择项),在新建的对话框上面放一个Label控件,将其Title修改为“Hello Qt!”,将该窗体保存到刚才用VC建立的Hello工程目录,文件名为Hello.ui;

3. 将Hello.ui作为源文件添加到Hello工程中,会询问你是否进行属性设置,点"否";

4. 然后关掉Hello工程,直接使用qmake重新编译VC工程,这样会破坏原来的工程设置(需要重新设置字符集-使用多字节字符集和MFC得使用-在共享DLL中使用MFC),qmake的用法如下(cmd命令到你的工程目录下):

D:/Hello> qmake -project -t vcapp -o Hello.pro
D:/Hello> qmake

编译完成后需要替换掉原来的.vcproj文件,这里不需要指定ui文件,qmake会将当前目录所有的ui文件以及C++文件创建一个VC工程。另外QT 4.4是对VC各个版本都兼容的,VC6、VC2003、VC2005、VC2008,编译安装步骤都是一致的。

   注意:此时会将一个ui_Hello.h文件会自动添加到工程中,但目前还没有这个文件到第5步才会生成它。
 
5. 在Hello.ui上点击右键->属性可以更改属性(在属性对话框中选择自定义生成步骤->常规,在命令行一栏输入:uic.exe Hello.ui -o HelloUi.h,说明一栏输入:正在编译Hello.ui ,在输出一栏输入:HelloUi.h,在附加依赖项一栏输入:uic.exe;Hello.ui,点击确定)不想改就直接点击Hello.ui右键->编译,将在当前工程目录生成ui_Hello.h文件,如果出错的话修改一下上面的Hello.ui属性里的“Hello.ui”的文

件位置,然后重新编译;

6.把一个空的Hello.cpp添加到工程里(如果第一步的时候添加了一个Hello.cpp文件的话需要移除重新添加,这估计是qmake的时候给弄坏了,双击它会出错);


7. 打开Hello.cpp,在main函数添加启动代码,完整代码如下:

// Hello.cpp : 定义控制台应用程序的入口点。

#include "ui_Hello.h"   // ui文件编译生成的C++文件
#include <QtGui/QApplication>
#include <QtGui/QMainWindow>

int main(int argc, char* argv[])
{
 QApplication app(argc, argv);//我的MyQt.ui创建的是一个MainWindow的,而网上的例子是Dialog的,但是调用方法都差不多
 QMainWindow * dlg = new QMainWindow(); // Qt 窗口对象会自动回收所有的子窗口对象,这里的dlg将被作为最外层窗口,将由

QApplication进行回收,因此Qt窗口只能在堆分配对象,且不必使用delete。

 Ui::MainWindow ui;   // MainWindow为ui文件编译生成的C++类,参见HelloUi.h
 ui.setupUi(dlg);

 dlg->show();

 return app.exec();
}

编译工程,运行即可出现Hello程序。^_^



博文来源:http://blog.csdn.net/normallife/article/details/4408098

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt中,可以通过Qt Designer创建的.ui文件来为按钮配置槽函数,具体的步骤如下: 1. 在Qt Designer中拖拽按钮控件到窗口中。 2. 右键点击按钮控件,选择“添加槽函数(Add Slot)”。 3. 在弹出的对话框中,输入槽函数的名称,例如“on_pushButton_clicked”,然后点击“确定”。 4. 此时会自动生成一个槽函数,可以在该函数中编写按钮点击事件的处理代码。 5. 在程序中使用connect()函数将按钮的clicked()信号和槽函数连接起来。在Qt中,connect()函数的第一个参数为信号的发送者,第二个参数为信号的名称,第三个参数为槽函数的接收者,第四个参数为槽函数的名称。例如,在主窗口的构造函数中添加以下代码: ```c++ connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(on_pushButton_clicked())); ``` 表示当按钮控件的clicked()信号被发送时,将调用主窗口对象(this)的槽函数on_pushButton_clicked()。 6. 最后,运行程序,点击按钮,即可看到槽函数被调用,从而实现按钮的点击事件处理。 需要注意的是,如果在Qt Designer中为按钮控件配置了槽函数,则可以直接在程序中使用connect()函数将按钮的clicked()信号和槽函数连接起来,不需要手动编写槽函数。 完整的示例代码如下: ```c++ #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(on_pushButton_clicked())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { ui->label->setText("Hello, Qt!"); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值