完全手工搭建一个完整QT工程后再VS上运行
来源:互联网 发布:win10系统优化工具 编辑:程序博客网 时间:2024/05/18 02:19
1、 建立初始目录文件夹
2、将必要的外部库放到初始文件夹中
例如这里的sdk以及shadow
3、建立cpp文件夹用于存放项目代码
4、建立主工程的必要文件
(1)make.bat文件,将指令qmake -tp vc -r写到bat文件中,用于生成vs项目的sln文件
(2).pro文件:
TEMPLATE = subdirs
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
SUBDIRS += src/practice01
SUBDIRS += src/practice02
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
SUBDIRS += src/practice01
SUBDIRS += src/practice02
详细的介绍可以参考博客:http://blog.csdn.net/adriano119/article/details/5878169
(3)建立bin目录
bin目录下包含以下:
debug目录包含以下:
layout目录下包含以下:
practicecdemo是自己建立的包含.xml文件的目录
这里建立了2个子工程,其中practice01里包含.xml布局文件:
(4)回到src目录,建立2个子工程的cpp文件夹
看其中一个工程的子目录结构
5、建立子工程
(1)添加资源文件theme->practicedemo,如下添加一些工程需要的图片
(2)添加widgets
(3)添加必要的头文件和源文件
stable.h,stable.h.cpp,demoframe.h,demoframe.cpp
(4)添加.pro文件
practice01.pro:
TEMPLATE = app
TARGET = practice01
DEPENDPATH += .
INCLUDEPATH += .
DEFINES += practice01
INCLUDEPATH += ../../../sdk/include
# Input
LIBS += dwutility.lib
LIBS += duifw.lib
LIBS += dwbase.lib
QMAKE_CXXFLAGS -= /MP
PRECOMPILED_HEADER = stable.h
TRANSLATES =practice01.ts
RESOURCES += practice01.qrc
SOURCES += main.cpp
HEADERS += demoframe.h
SOURCES += demoframe.cpp
HEADERS += widgets/demowidget.h
SOURCES += widgets/demowidget.cpp
CONFIG(debug, debug)
{
DESTDIR = ../../bin/debug
QMAKE_LIBDIR += ../../../sdk/lib/debug
}
CONFIG(release, release)
{
DESTDIR = ../../bin/release
QMAKE_LIBDIR += ../../../sdk/lib/release
}
TARGET = practice01
DEPENDPATH += .
INCLUDEPATH += .
DEFINES += practice01
INCLUDEPATH += ../../../sdk/include
# Input
LIBS += dwutility.lib
LIBS += duifw.lib
LIBS += dwbase.lib
QMAKE_CXXFLAGS -= /MP
PRECOMPILED_HEADER = stable.h
TRANSLATES =practice01.ts
RESOURCES += practice01.qrc
SOURCES += main.cpp
HEADERS += demoframe.h
SOURCES += demoframe.cpp
HEADERS += widgets/demowidget.h
SOURCES += widgets/demowidget.cpp
CONFIG(debug, debug)
{
DESTDIR = ../../bin/debug
QMAKE_LIBDIR += ../../../sdk/lib/debug
}
CONFIG(release, release)
{
DESTDIR = ../../bin/release
QMAKE_LIBDIR += ../../../sdk/lib/release
}
(4)添加.qrc文件,用于存放资源图片目录
<RCC>
<qresource>
<file>theme\practicedemo\edit_frame.png</file>
<file>theme\practicedemo\freshMan_greenPeas.png</file>
<file>theme\practicedemo\gambleframe_bk.png</file>
<file>theme\practicedemo\radiobox.png</file>
<file>theme\practicedemo\rect_btn.png</file>
<file>theme\practicedemo\round_btn.png</file>
</qresource>
</RCC>
<qresource>
<file>theme\practicedemo\edit_frame.png</file>
<file>theme\practicedemo\freshMan_greenPeas.png</file>
<file>theme\practicedemo\gambleframe_bk.png</file>
<file>theme\practicedemo\radiobox.png</file>
<file>theme\practicedemo\rect_btn.png</file>
<file>theme\practicedemo\round_btn.png</file>
</qresource>
</RCC>
.qrc文件的详细说明可以参考博客:http://blog.csdn.net/xiaofengkuang/article/details/7262101
(5)添加.ts文件,用于文字的国际化
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
<context>
<name>QObject</name>
<message>
<source>Appeal</source>
<translation>申诉</translation>
</message>
</context>
</TS>
<!DOCTYPE TS>
<TS version="2.0">
<context>
<name>QObject</name>
<message>
<source>Appeal</source>
<translation>申诉</translation>
</message>
</context>
</TS>
.ts文件的详细可以参考博客:http://blog.163.com/hu_cuit/blog/static/1228491432011271233383/
(6)添加qm.bat用于生成.ts文件的.qm文件
qm.bat的指令为: lrelease practice01.ts –qm practice01.qm
(7)添加main.cpp
#include "stable.h"
#include "duifw/duiapplication.h"
#include "duifw/duiframewindow.h"
#include "duifw/duixmlui.h"
#include "demoframe.h"
#include "duifw/duilabelwidget.h"
int main(int argc, char *argv[])
{
DuiApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
app.setQuitOnLastWindowClosed( true );
//加载qm文件
QTranslator qTraslator;
QString configFile = QDir::toNativeSeparators(QCoreApplication::applicationDirPath());
configFile = configFile + "/../../src/practice01/practice01.qm";
qTraslator.load(configFile);
app.installTranslator(&qTraslator);
DemoFrame* frame = qobject_cast<DemoFrame*>( DuiXmlUI::createFromFile( "layout/practicedemo/practice01/demoframe.xml", (QWidget*)NULL ) );
frame->setAttribute(Qt::WA_QuitOnClose, true);
//对evenIn的DuiLabelWidget控件修改字体
DuiLabelWidget *label=frame->findChild<DuiLabelWidget *>("evenIn");
if(label)
{
QFont font("Dejavu Sans", 9);
label->setFont(font);
}
frame->show();
return app.exec();
}
#include "duifw/duiapplication.h"
#include "duifw/duiframewindow.h"
#include "duifw/duixmlui.h"
#include "demoframe.h"
#include "duifw/duilabelwidget.h"
int main(int argc, char *argv[])
{
DuiApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
app.setQuitOnLastWindowClosed( true );
//加载qm文件
QTranslator qTraslator;
QString configFile = QDir::toNativeSeparators(QCoreApplication::applicationDirPath());
configFile = configFile + "/../../src/practice01/practice01.qm";
qTraslator.load(configFile);
app.installTranslator(&qTraslator);
DemoFrame* frame = qobject_cast<DemoFrame*>( DuiXmlUI::createFromFile( "layout/practicedemo/practice01/demoframe.xml", (QWidget*)NULL ) );
frame->setAttribute(Qt::WA_QuitOnClose, true);
//对evenIn的DuiLabelWidget控件修改字体
DuiLabelWidget *label=frame->findChild<DuiLabelWidget *>("evenIn");
if(label)
{
QFont font("Dejavu Sans", 9);
label->setFont(font);
}
frame->show();
return app.exec();
}
6、 回到以下目录运行make.bat,生成.sln文件
7、 打开vs运行即可
0 0
- 完全手工搭建一个完整QT工程后再VS上运行
- Qt工程转VS工程
- DBoW2在windows上的vs工程搭建方法
- 在ok210上运行一个qt程序
- 在VS 2010上运行VS 2012(VS 2013)的工程
- Jboss7上+maven搭建struts2+spring3+hibernate3完整能运行
- Oracel 安装后的完全手工卸载
- qt手工工程建立到生成
- vs+qt+VAssistX搭建
- VS+QT环境搭建
- QT 静态编译,ubuntu上的QT工程在fedora上运行
- 搭建一个完整平台
- Qt工程转换成VS工程
- qt creator工程转为vs工程
- vs工程文件转Qt工程文件
- Qt/Qml工程转VS工程
- QT+VS2008 完整平台搭建
- QT+VS2008 完整平台搭建
- COGS 452. Nim游戏!解题报告
- POJ2823 --单调队列
- 排序系列之快速排序和归并排序
- HDOJ 1722 Cake ( 分蛋糕 )
- 216. Combination Sum III
- 完全手工搭建一个完整QT工程后再VS上运行
- 欢迎使用CSDN-markdown编辑器
- Maven初接触
- 2016.7.20晚 听课收获
- java-计蒜客-A+B+C 问题
- iOS开发 - Block
- 杭电 Problem 1722 Cake 【gcd】
- hdoj 2504 又见GCD 【GCD】
- oracle sql 超长报ORA-01460错误