当前位置: 首页 > news >正文

QT实现一个三轴位移台的控制界面

文章目录

  • 0 引入
  • 1、圆形转盘
  • 2、其他
  • 3、引用


在这里插入图片描述

0 引入

本来想做一个酷炫的3D位移台控制程序,要有一个类似遥控器手柄那种界面,在网上找了半天也没有,想要有那种效果还要用异性按钮做,迫在眉睫的情况下,使用了自己的方法,直接上图

请添加图片描述


1、圆形转盘

上述界面都使用了QT自带的控件实现的(除了图标以外),当然可以在美化界面,比如异行形按钮的使用(见引用1)。
圆形转盘:用了一个Qlable作为背景,上面个放了六个按钮,分别作为水平面的前后左右,以及整体的升降,这里写了一个小技巧,就是左键按住不放,则电机以最小速度运行,松开停止;右键点击不放则以设置的速度运行,松开停止,这样保证了操作的便捷性。
具体就是按钮自定义了,放开鼠标点击的事件:

void sPushButton::mousePressEvent(QMouseEvent *e)
{if (e->button() == Qt::LeftButton) {emit leftPress();} else if (e->button() == Qt::RightButton) {emit rightPress();}
}void sPushButton::mouseReleaseEvent(QMouseEvent *e)
{emit sigrelease();
}

在初始化时候绑定按下和释放对应的动作

connect(leftbutton,&sPushButton::leftPress,[&]{//慢速运行代码;});
connect(leftbutton,&rightPress::leftPress,[&]{//快速运行代码;});
connect(leftbutton,&sPushButton::sigrelease,[&]{//停止代码;});

2、其他

1、其他模块就是正常的操作,由于上位机与位移台是通过bodbusTcp通讯的,读取位置的时候,我是用了一个定时器(只有在这个界面显示的时候去实时读取,这个界面隐藏就关闭定时器),然后每个位置的滑条代表不同方向相对位置,可以更好的知道,位移台是否到达边界;
2、在实际过程中,通讯这一块地址非常注意需要16进制,详细协议参考引用2.


3、引用

1、异形按钮的实现
2、modbusTcp的具体实现
3、modbusRTU与ACII区别


相关文章:

  • WinAppDriver 自动化测试:C#篇
  • Nginx配置文件介绍和基本使用
  • Instagram和facebook广告对比解析
  • unibest+uniapp+vue3+TS+Wot UI分包
  • [特殊字符]推客带货小程序解决方案——0门槛裂变营销,佣金赚不停!
  • 板凳-------Mysql cookbook学习 (十--11)
  • MIT 6.S081—环境配置和初步学习day01(VMware和Ubuntu安装)
  • c++17标准std::filesystem常用函数
  • uni-app的UTS插件开发,调用鸿蒙原生API
  • 网络安全 vs 信息安全的本质解析:数据盾牌与网络防线的辩证关系关系
  • 专线服务器具体是指什么?
  • Python 中 `for` 循环与 `while` 循环的实际应用区别:实例解析
  • WPF Binding 的 Mode 属性
  • SpringBoot定时任务 - Timer实现方式
  • Unity Netcode自定义数据传输——结构体及其序列化
  • Docker数据管理——AI教你学Docker
  • Django入门教程:从零构建Web应用
  • Android-Layout Inspector使用手册
  • 【STM32】外部中断
  • SQL Server 如何实现高可用和读写分离技术架构