首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建Qt应用程序?

如何创建Qt应用程序?
EN

Stack Overflow用户
提问于 2022-02-07 10:28:59
回答 1查看 283关注 0票数 -1

我想要创建一个应用程序来控制摄像机参数(用户/ptz/get视频)。照相机使用的是ONVIF protocol

我正在使用Qt框架5.13。

我从gsoap找到了onfiv.com工具和.wsdl文件。然后使用https://www.genivia.com/examples/onvif/index.html的指南从devicemanagement.wsdl创建.h/..cpp文件。我已经从devicemanagement.wsdl生成了一个代理类,Qt上的生成文件的程序正在工作,但是我需要用户授权和ptz控件.

如何使用gsoap,onvif规范文件(.wsdl)生成类,哪些用户授权和ptz控件用于Qt?

也许有人在Qt上做了同样的应用,并且可以帮助我。

EN

回答 1

Stack Overflow用户

发布于 2022-02-07 18:21:22

在wsdl2h上运行ptz.wsdl:

代码语言:javascript
复制
wsdl2h -O4 -P -x -o onvif.h http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl

这假设您将当前目录中的typemap.dat文件与ONVIF命名空间绑定在一起,请参阅ONVIF示例以获取该文件。

选项-O4积极地“切片”WSDL,以将代码大小减少到必要的组件,请参阅文章减少基于WSDL的Web服务开发成本的模式切片方法

要生成C++代理类:

代码语言:javascript
复制
soapcpp2 -C -j -2 -I gsoap/import onvif.h

-C选项只指定客户端,-j指定代理类,-2指定SOAP1.2强制执行,-I是导入必要的文件。

如果您需要WS-Security身份验证,那么添加行:

代码语言:javascript
复制
#import "wsse.h"

如果还没有到onvif.h文件,则重新运行soapcpp2。

汇编:

代码语言:javascript
复制
c++ -O2 -I. -Igsoap/custom -o app soapPTZBindingProxy.cpp soapC.cpp dom.cpp stdsoap2.cpp wsseapi.c

一些源代码文件是生成的,另一些是gSOAP库的一部分。

代码生成工具有很多选项,所以这在一定程度上取决于您想要完成的任务。

如果您想使用QT字符串和类型,那么也可以通过修改typemap.dat文件和使用gsoap/定制中的自定义序列化程序来完成。例如,定制/qstring.h.h告诉您:

代码语言:javascript
复制
        To automate the wsdl2h-mapping of xsd:string to
        QString, add this line to the typemap.dat file:

        xsd__string = #import "custom/qstring.h" | xsd__string 

然后重新运行wsdl2h以获得QT字符串绑定。使用您的项目编译自定义/qtstring.cpp. your。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71017001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档