基于Qt的VegaPrime视景仿真的实现

基于Qt的VegaPrime视景仿真的实现

ID:38158453

大小:338.48 KB

页数:4页

时间:2019-05-31

基于Qt的VegaPrime视景仿真的实现_第1页
基于Qt的VegaPrime视景仿真的实现_第2页
基于Qt的VegaPrime视景仿真的实现_第3页
基于Qt的VegaPrime视景仿真的实现_第4页
资源描述:

《基于Qt的VegaPrime视景仿真的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、开发案例基于Qt的VegaPrime视景仿真的实现郭金良1,2222,聂孝亮,马孝尊,张德锋(1.国防科学技术大学电子科学与工程学院,长沙410073;2.中国人民解放军63892部队,洛阳471003)摘要:为了丰富VegaPrime的开发模式,增强其应用,提出基于Qt的VegaPrime视景仿真开发模式,介绍如何实现该模式,并应用该模式开发一个应用系统。结果表明,该开发模式实现简单,其应用程序具有交互性好、运行速度快、可跨平台等优点。关键词:视景仿真;线程;信号和槽;通信机制0引言classQ

2、VPWindow:publicQMainWindow{为了丰富VP的开发模式,增强其应用,本文提Q_OBJECT出了基于Qt的VP应用程序开发模式。该模式开发public:难度低,开发速度快,有效地减少了开发者的编程工QVPWindow(QWidget*parent=0,Qt::WFlagsflags=0)作量,同时其应用程序能跨平台高性能运行。值得一{提的是,VP自带的LynxPrime软件也是用Qt开发//配置UI的,不过在VP的联机帮助中却没有对Qt下的开发做m_ui.setupUi(thi

3、s);任何说明,当前相关文献中也没找到这方面的介绍,}因此本文的目的就是要详细介绍如何实现Qt下的private://UI文件生成的UI类VP视景仿真开发。Ui::QVPWindowClassm_ui;1实现方法}intmain(intargc,char*argv[])1.1创建Qt图形用户界面{在基于Qt的VP视景仿真应用程序的开发中,QtQApplicationapp(argc,argv);设计的图形用户界面同时提供了VP运行窗口的父//主窗口窗口。QVPWindowwin;//显示QVPWi

4、ndow窗口 win.show();returnapp.exec();VP}(!"#$%&$’($)*+$,-)./0 1231.2创建VP独立运行线程现4 56789:;<开发的第二步就是要实现VP的独立运行。应用代程序的视景表现部分全部都是由VP来完成的,为避免计=>?/0 5@A4B8CDEEBCD@AFG

5、要开创一个独立运行VP的线程。让图1基于Qt的VP开发基本流程(VP的渲染工作在独立线程中完成,同时也提高了VP总实现代码如下:的运行速度,保证了视景仿真的实时运行效果。第二九收稿日期:2008-08-19修稿日期:2008-10-13九作者简介:郭金良(1982-),男,湖南浏阳人,在读研究生,助理工程师,研究方向为雷达电子战仿真和电子信息装备试验技术期)MODERNCOMPUTER2009.1貋貝貨开发案例在MFC开发中用AfxBeginThread来开启一个//获取VP运行窗口Windows

6、下的线程,线程的很多细节实现,参数设定VpWindow*winVp=VpWindow::begin();等都比较复杂,对编程的要求比较高[6]。Qt的线程创//将VP窗口的父节点设置为QWidget建相对来说比较简单,Qt中的QThread类对线程的实winVp->setParent(Wid);//移除VP窗口的边框,使用Qt的窗口现进行了封装,提供了独立于平台的线程创建方法。winVp->setBorderEnable(false);用户可以从QThread派生一个子类,重载线程的运行//让Qt

7、的窗口自动判断VP窗口的大小,使VP窗口布函数run,在run函数中实现仿真环境的实时控制,包满Qt窗口括初始化、定义、装载acf、配置系统、运行仿真循环以winVp->setFullScreenEnable(true);及退出仿真循环等。然后在Qt主线程中调用该线程要使VP窗口始终布满整个Qt窗口,必须在Qt提供的start函数运行VP线程,调用terminate函数强窗口大小改变的时候实时更新VP窗口的大小。制终止VP线程。实现代码如下:classQVPThread:publicQThread

8、QWidget提供了响应窗口大小改变信号的消息句柄{resizeEvent,可以在其派生类里重载这个函数实现之,public:实现代码如下:voidrun();voidQtWidget::resizeEvent(QResizeEvent*event)};{voidQVPThread::run()//获取父窗口QtWidget的窗口大小{intwidth=winQT->size().width();//初始化intheight=winQT->size().height();vp::i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。