完全手工搭建一个完整QT工程后再VS上运行

本文详细介绍了一个基于Qt的项目从创建初始目录开始,包括外部库的引入、项目代码组织、必要文件如make.bat、.pro文件的配置过程,以及资源文件、国际化支持文件等的设置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
详细的介绍可以参考博客:http://blog.youkuaiyun.com/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 
}
(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>
.qrc文件的详细说明可以参考博客:http://blog.youkuaiyun.com/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>
.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();
}

6、 回到以下目录运行make.bat,生成.sln文件


7、 打开vs运行即可

### 软件测试中的上位机工具及其使用方法 #### 什么是上位机? 在嵌入式系统开发中,上位机通常指用于监控、调试和管理下位机运行状态的计算机程序或设备。它通过串口、USB 或网络等方式与下位机通信,提供图形化界面以便于开发者观察和分析系统的运行情况。 #### 常见的上位机测试工具 目前市场上存在多种针对不同场景设计的上位机测试工具。例如,`PC-Lint` 是一种静态代码分析工具,在实际开发过程中能更细致地发现潜在问题[^1];而 `ATECLOUD` 则是一款由国内公司 Namisoft 开发的强大测试测量软件,适用于复杂的硬件控制系统,支持超过两万种电子仪器设备的连接与配置[^2]。 对于特定应用场景下的开发工作流来说,基于 Qt 的自定义上位机解决方案也十分流行。这种方法允许工程师灵活构建满足个性化需求的应用程序,并且可以通过严格的编译和测试流程来验证其功能性及稳定性[^3]。 #### 如何选择合适的上位机工具? 当考虑选用何种类型的上位机作为辅助手段时,应综合考量以下几个方面: - **目标平台特性**:明确所要操作的目标对象是什么样的硬件环境; - **功能覆盖范围**:评估候选产品能否全面应对预期的任务挑战; - **易用性和扩展性**:考察该产品的学习曲线以及未来可能存在的升级空间。 #### ATECLOUD的具体应用案例 以ATECLOUD为例说明如何利用这类综合性强的上位机开展具体任务。假设我们需要搭建一套完整的电源模块自动化检测方案,则可以按照如下方式实施: 1. 定义好整个项目的框架结构,包括但不限于待测单元规格参数设定、信号输入/输出接口规划等内容。 2. 启动ATECLOUD客户端之后加载相应的模板文件或者手动新建工程实例。 3. 配置所需外设资源列表——这里假定需要用到一台数字存储示波器配合若干模拟开关矩阵构成闭环反馈回路。 4. 编写脚本逻辑控制序列动作执行顺序及时序关系调整优化直至达到最佳效果为止。 5. 运行预览模式查看初步成果展示画面布局合理性与否再做适当修改完善细节部分处理机制直到满意程度方可正式投入生产环节当中去实践检验最终成效表现如何。 上述过程充分体现了ATECLOUD这样高度集成化的平台上位机所带来的便利之处不仅限于是简化了传统意义上繁杂琐碎的手工连线作业步骤同时还极大地提高了工作效率缩短周期成本节约明显可见一斑。 ```python import atecloud_api as ac def setup_atecloud(): project = ac.Project() oscilloscope = ac.Instrument('DSO', 'IDN?') switch_matrix = ac.SwitchMatrix() # Configure instruments and matrix here... return project, oscilloscope, switch_matrix project, scope, smatrix = setup_atecloud() result = project.run_test_sequence() print(result) ``` 以上代码片段展示了如何初始化ATECLOUD项目并设置相关仪器设备的一个简单例子。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值