最近在网上偶然发现一款Qt飞行仪表板控件,真的很酷哦! 
是一款开源软件, 
直接编译运行: 
 
美工还是不错的! 
控件操作非常简单:

void MainWindow::timerEvent( QTimerEvent *event )
{
/////////////////////////////////
QMainWindow::timerEvent( event );
///////////////////////////////// float timeStep = m_time.restart(); m_realTime = m_realTime + timeStep / 1000.0f; float alpha = 0.0f;
float beta = 0.0f;
float roll = 0.0f;
float pitch = 0.0f;
float heading = 0.0f;
float slipSkid = 0.0f;
float turnRate = 0.0f;
float devH = 0.0f;
float devV = 0.0f;
float airspeed = 0.0f;
float altitude = 0.0f;
float pressure = 28.0f;
float climbRate = 0.0f;
float machNo = 0.0f;
float adf = 0.0f;
float dme = 0.0f; if ( m_ui->pushButtonAuto->isChecked() )
{
alpha = 20.0f * sin( m_realTime / 10.0f );
beta = 15.0f * sin( m_realTime / 10.0f );
roll = 180.0f * sin( m_realTime / 10.0f );
pitch = 90.0f * sin( m_realTime / 20.0f );
heading = 360.0f * sin( m_realTime / 40.0f );
slipSkid = 1.0f * sin( m_realTime / 10.0f );
turnRate = 7.0f * sin( m_realTime / 10.0f );
devH = 1.0f * sin( m_realTime / 20.0f );
devV = 1.0f * sin( m_realTime / 20.0f );
airspeed = 125.0f * sin( m_realTime / 40.0f ) + 125.0f;
altitude = 9000.0f * sin( m_realTime / 40.0f ) + 9000.0f;
pressure = 2.0f * sin( m_realTime / 20.0f ) + 30.0f;
climbRate = 650.0f * sin( m_realTime / 20.0f );
machNo = airspeed / 650.0f;
adf = -360.0f * sin( m_realTime / 50.0f );
dme = 99.0f * sin( m_realTime / 100.0f ); m_ui->spinBoxAlpha ->setValue( alpha );
m_ui->spinBoxBeta ->setValue( beta );
m_ui->spinBoxRoll ->setValue( roll );
m_ui->spinBoxPitch ->setValue( pitch );
m_ui->spinBoxSlip ->setValue( slipSkid );
m_ui->spinBoxTurn ->setValue( turnRate );
m_ui->spinBoxDevH ->setValue( devH );
m_ui->spinBoxDevV ->setValue( devV );
m_ui->spinBoxHead ->setValue( heading );
m_ui->spinBoxSpeed ->setValue( airspeed );
m_ui->spinBoxMach ->setValue( machNo );
m_ui->spinBoxAlt ->setValue( altitude );
m_ui->spinBoxPress ->setValue( pressure );
m_ui->spinBoxClimb ->setValue( climbRate );
m_ui->spinBoxADF ->setValue( adf );
m_ui->spinBoxDME ->setValue( dme );
}
else
{
alpha = (float)m_ui->spinBoxAlpha ->value();
beta = (float)m_ui->spinBoxBeta ->value();
roll = (float)m_ui->spinBoxRoll ->value();
pitch = (float)m_ui->spinBoxPitch ->value();
heading = (float)m_ui->spinBoxHead ->value();
slipSkid = (float)m_ui->spinBoxSlip ->value();
turnRate = (float)m_ui->spinBoxTurn ->value();
devH = (float)m_ui->spinBoxDevH ->value();
devV = (float)m_ui->spinBoxDevV ->value();
airspeed = (float)m_ui->spinBoxSpeed ->value();
pressure = (float)m_ui->spinBoxPress ->value();
altitude = (float)m_ui->spinBoxAlt ->value();
climbRate = (float)m_ui->spinBoxClimb ->value();
machNo = (float)m_ui->spinBoxMach ->value();
adf = (float)m_ui->spinBoxADF ->value();
dme = (float)m_ui->spinBoxDME ->value();
} m_ui->widgetPFD->setFlightPathMarker ( alpha, beta );
m_ui->widgetPFD->setRoll ( roll );
m_ui->widgetPFD->setPitch ( pitch );
m_ui->widgetPFD->setSlipSkid ( slipSkid );
m_ui->widgetPFD->setTurnRate ( turnRate / 6.0f );
m_ui->widgetPFD->setDevH ( devH );
m_ui->widgetPFD->setDevV ( devV );
m_ui->widgetPFD->setHeading ( heading );
m_ui->widgetPFD->setAirspeed ( airspeed );
m_ui->widgetPFD->setMachNo ( machNo );
m_ui->widgetPFD->setAltitude ( altitude );
m_ui->widgetPFD->setPressure ( pressure );
m_ui->widgetPFD->setClimbRate ( climbRate / 100.0f ); m_ui->widgetNAV->setHeading ( heading );
m_ui->widgetNAV->setHeadingBug ( 0.0f );
m_ui->widgetNAV->setCourse ( 0.0f );
m_ui->widgetNAV->setBearing ( adf , true );
m_ui->widgetNAV->setDeviation ( devH , true );
m_ui->widgetNAV->setDistance ( dme , true ); m_ui->widgetSix->setRoll ( roll );
m_ui->widgetSix->setPitch ( pitch );
m_ui->widgetSix->setAltitude ( altitude );
m_ui->widgetSix->setPressure ( pressure );
m_ui->widgetSix->setAirspeed ( airspeed );
m_ui->widgetSix->setHeading ( heading );
m_ui->widgetSix->setSlipSkid ( slipSkid * 15.0f );
m_ui->widgetSix->setTurnRate ( turnRate );
m_ui->widgetSix->setClimbRate ( climbRate ); m_ui->widgetPFD->update();
m_ui->widgetNAV->update();
m_ui->widgetSix->update(); m_steps++;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120

类似的工业仪表控件网上还有很多。真心感觉Qt拯救了C++!

http://blog.csdn.net/goldenhawking/article/details/78817426

一款有意思的 Qt 飞行仪表控件的更多相关文章

  1. 交互式的Flash图表和仪表控件AnyChart

    AnyChart使你可以创建出绚丽的交互式的Flash图表和仪表控件.是一款灵活的基于Adobe Flash和跨浏览器和跨平台的图表解决方案,被很多知名大公司所使用,可以用于仪表盘的创建.报表.数据分 ...

  2. SYRefresh 一款简洁易用的刷新控件 支持tableview,collectionview水平垂直刷新功能

    SYRefresh 地址: https://github.com/shushaoyong/SYRefresh 一款简洁易用的刷新控件 示例程序:   默认刷新控件使用方法: //添加头部刷新控件 Sc ...

  3. CAD控件:QT开发使用控件入门

    1. 环境搭建: 3 1.1. 安装Qt 3 1.2. 安装Microsoft Windows SDK的调试包 6 2. QT中使用MxDraw控件 7 1.3. 引入控件 7 3. 打开DWG文件 ...

  4. Qt实现表格控件-支持多级列表头、多级行表头、单元格合并、字体设置等

    目录 一.概述 二.效果展示 三.定制表头 1.重写数据源 2.重写QHeaderView 四.设置属性 五.相关文章 原文链接:Qt实现表格控件-支持多级列表头.多级行表头.单元格合并.字体设置等 ...

  5. paper 139:qt超强绘图控件qwt - 安装及配置

    qwt是一个基于LGPL版权协议的开源项目, 可生成各种统计图.它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式 ...

  6. Qt列表等控件实现平滑滚动&deepin启动器存在的问题

    Qt列表等控件实现平滑滚动 Qt自带的的列表控件是不能平滑滚动的,但如果滚动速度快的话很容易引起视线丢失,体验效果很差.本篇主要讲述如何在Qt中对列表控件加入平滑滚动.文中以QScrollArea控件 ...

  7. Qt之表格控件蚂蚁线

    一.蚂蚁线 摘自互动百科:在图像影像软件中表示选区的动态虚线,因为虚线闪烁的样子像是一群蚂蚁在跑,所以俗称蚂蚁线.在Poshop,After Effect等软件中比较常见. 背景:用过excel的同学 ...

  8. AnyChart图表仪表控件在Flex环境下使用

    AnyChart控件是一款当前流行的数据可视化解决方案,使客户可以创建交互地.生动的图表.实时仪表和地图.同时支持Flash和HTML5显示,控件提供极好的视觉外观和配色方案能够使客户根据不同的需求设 ...

  9. 一款灵活好用的日历控件Kalendae

    Kalendae是一款纯js不依赖任何js库的日历控件,可以轻松实现显示月份数量,当前选中多个日期,并可以按照周等你想要的格式去定制选中项. 下载地址:GitHub/Kalendae 第一步:Kale ...

随机推荐

  1. 【例题 6-16 UVa 10129】Play on Words

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 入度减去出度个数为1的点和为-1的点各有1个,然后其他点入度减去出度为0 或者全都是入度为0的点即可. [代码] #include ...

  2. thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法)

    thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法) 一.总结 记得看下面 1.获取器的作用是在获取数据的字段值后自动进行处理 2.修改器的作用是可以在数据赋值的时候自动进行转换处 ...

  3. apache与IIS共用80端口冲突解决方法

    如果同一台电脑安装了apache和iis,会提示80端口冲突,如何解决apache与iis 80端口冲突的问题呢,并且同时使用apache和iis 将apache设为使用80端口,IIS使用其它端口, ...

  4. DBeaver无法执行数据库脚本

    网上查了查相关问题,自己写了个步骤,记录下来方便以后查找 此处我连接的是mysql数据库,就以mysql为例说明: 在使用DBeaver过程中,别人给了几个sql文件,想直接导入数据库中,正常流程应该 ...

  5. [Angular2 Router] Index router

    Index router as default router. import {RouterModule} from "@angular/router"; import {NotF ...

  6. spark提交应用的方法(spark-submit)

    参考自:https://spark.apache.org/docs/latest/submitting-applications.html 常见的语法: ./bin/spark-submit \    ...

  7. AIR 初步 Javascript学习之cookie操作

    //设置cookie的名称,值,过期时间         function setCookie(cookieName,cookieValue,cookieExpire) {             v ...

  8. [PReact] Handle Simple Routing with preact-router

    Some applications only need a very minimal routing solution. This lesson will cover a practical exam ...

  9. Java随机验证吗

    <span style="font-size:18px;">package com.java.process.jsp; import java.awt.Color; i ...

  10. 2. pushd . :将当前文件夹压入栈,使用popd能够回到该文件夹。

    1.man -t  ls | ps2pdf -> ls.pdf生成pdf格式的ls帮助文件. 2. pushd . :将当前文件夹压入栈,使用popd能够回到该文件夹. 3.find -type ...