[902]工控机本机控制界面

news/2024/11/30 9:37:17/

目录

    • 准备
    • 程序
    • 界面

准备

1.ubuntu16建qt界面左上角菜单被遮挡
(ubuntu18不用)
进入:设置->外观->行为
显示窗口菜单—设置为“在窗口的标题栏”
菜单可见度—设置为“总是显示”
在这里插入图片描述

2.在pro文件末尾加入:QMAKE_LFLAGS += -no-pie

在这里插入图片描述

程序

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();void on_pushButton_3_clicked();void on_pushButton_4_clicked();void on_pushButton_5_clicked();void on_pushButton_6_clicked();void on_pushButton_7_clicked();void on_pushButton_8_clicked();void on_pushButton_9_clicked();void on_action_triggered();void on_action_2_triggered();void on_action_3_triggered();private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QProcess>
#include <QDir>
#include <QMessageBox>
#include <QDebug>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);//this->setWindowTitle("control");ui->lineEdit->setText("nefu");ui->lineEdit_2->setText("/home/nefu");
}MainWindow::~MainWindow()
{delete ui;
}
//ros
void MainWindow::on_pushButton_clicked()
{system("gnome-terminal -- bash -c 'source /opt/ros/kinetic/setup.bash ;roscore'&");ui->textEdit->append("control $ : roscore");
}
//雷达
void MainWindow::on_pushButton_2_clicked()
{system("gnome-terminal -- bash -c 'source /home/nefu/catkin_ws/devel/setup.bash ;roslaunch velodyne_pointcloud VLP16_points.launch'&");ui->textEdit->append("control $ : roslaunch velodyne_pointcloud VLP16_points.launch");
}
//惯导
void MainWindow::on_pushButton_3_clicked()
{system("gnome-terminal -- bash -c 'source /home/nefu/catkin_ws/devel/setup.bash ;roslaunch sbg_driver sbg_device.launch'&");ui->textEdit->append("control $ : roslaunch sbg_driver sbg_device.launch");
}
//红外
void MainWindow::on_pushButton_4_clicked()
{system("gnome-terminal -- bash -c 'source /home/nefu/catkin_ws/devel/setup.bash ;roslaunch usb_cam usb_cam-test.launch'&");ui->textEdit->append("control $ : roslaunch usb_cam usb_cam-test.launch");
}
//大恒
void MainWindow::on_pushButton_5_clicked()
{system("gnome-terminal -- bash -c 'source /home/nefu/catkin_ws/devel/setup.bash ;rosrun daheng daheng_opencv'&");ui->textEdit->append("control $ : rosrun daheng daheng_opencv");
}
//rqt
void MainWindow::on_pushButton_6_clicked()
{system("gnome-terminal -- bash -c 'source /opt/ros/kinetic/setup.bash ;rqt_image_view '&");ui->textEdit->append("control $ : rqt_image_view");
}
//bag列表
void MainWindow::on_pushButton_7_clicked()
{ui->comboBox->clear();//QString strget=ui->lineEdit->text();QString Path=ui->lineEdit_2->text();//文件路径QDir dir(Path);//QDir dir(QDir::currentPath());//当前文件路径QString filtername = "*.bag";QStringList filter;filter << filtername;dir.setNameFilters(filter);QStringList Neuronindex = dir.entryList();ui->comboBox->addItems(Neuronindex);//把列表加载到comboBoxQString s = QString::number(Neuronindex.size());//bag文件个数ui->textEdit->append(QString("control $ : There are %1 bag files").arg(s));
}
//运行bag
void MainWindow::on_pushButton_8_clicked()
{QString pathget=ui->lineEdit_2->text();QString bagname=ui->comboBox->currentText();QString strv=QString("rosbag play %1/%2").arg(pathget).arg(bagname);QString str=QString("gnome-terminal -- bash -c 'source /opt/ros/kinetic/setup.bash ; %1'&").arg(strv);char *n;QByteArray m=str.toLatin1();n=m.data();system(n);ui->textEdit->append(QString("control $ : %1").arg(strv));
}
//删除bag
void MainWindow::on_pushButton_9_clicked()
{QString pathget=ui->lineEdit_2->text();QString bagname=ui->comboBox->currentText();QString path =QString("%1/%2").arg(pathget).arg(bagname);//指定文件路径QFile fileTemp(path);QMessageBox msg(this);//对话框设置父组件msg.setWindowTitle("Prompt");//对话框标题msg.setText("Confirm the delete action ?");//对话框提示文本msg.setIcon(QMessageBox::Question);//设置图标类型Informationmsg.setStandardButtons(QMessageBox::Yes | QMessageBox::No);//对话框上包含的按钮if(msg.exec() == QMessageBox::Yes)//模态调用{fileTemp.remove();ui->textEdit->append(QString("control $ : Deleted %1").arg(bagname));}on_pushButton_7_clicked();
}
//关闭终端
void MainWindow::on_action_triggered()
{system("gnome-terminal -- bash -c 'killall -9 bash'&");
}
//关机
void MainWindow::on_action_2_triggered()
{system("gnome-terminal -- bash -c 'shutdown -h now '&");
}
//重启
void MainWindow::on_action_3_triggered()
{system("gnome-terminal -- bash -c 'shutdown -r now '&");
}

main.cpp

#include "mainwindow.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

界面

界面搭建
在这里插入图片描述

菜单
在这里插入图片描述


http://www.ppmy.cn/news/351480.html

相关文章

工控GUI

eCGUI功能特性介绍 eCGUI微型16/32位嵌入式GUI,自主开发&#xff0c;历时四年左右&#xff0c;拥有全部版权. 体积小巧 大小在 100KB~180KB&#xff01; 特性: 多窗口支持| 完全中文输入/显示| 多数常用GUI控件| 99.9% ANSI C 编写| 已成功移植 DOS,Linux,uc/OS-II| 组件式 API…

Git第十六讲 Git属性和忽略文件

在使用Git进行版本控制时&#xff0c;我们常常需要忽略某些文件或目录&#xff0c;例如编译产生的临时文件、日志文件等&#xff0c;以避免将它们包含在版本库中。Git属性和忽略文件是两种常用的机制&#xff0c;用于控制文件的跟踪和忽略。本文将介绍如何使用Git属性和忽略文件…

工控机上安装物联网卡

一、进入设置&#xff0c;点更多 二、进入移动网络选项 三、打开移动数据网络漫游 四、打开apn 五、选项处于被选中状态 最后拉下桌面状态菜单进行确认&#xff0c;lte&#xff0c;cmcc&#xff0c;再点开浏览器看看是否可以上网 物联网卡&#xff0c;是中国移动面向物联网用…

工控机主机该怎么加固

工控安全现状 工业控制系统是支撑国民经济的重要设施&#xff0c;是工业领域的神经中枢。现在工业控制系统已经广泛应用于电力、通信、化工、交通、航天等工业领域&#xff0c;支撑起国计民生的关键基础设施。 随着传统的工业转型&#xff0c;数字化、网络化和智能化的工业控…

工控机主机加固安全浅析

工控安全现状 工业控制系统是支撑国民经济的重要设施&#xff0c;是工业领域的神经中枢。现在工业控制系统已经广泛应用于电力、通信、化工、交通、航天等工业领域&#xff0c;支撑起国计民生的关键基础设施。 随着传统的工业转型&#xff0c;数字化、网络化和智能化的工业控…

开源物联网框架EasyIot(适用于快递柜售货机)

【适用场景】 1. 智能柜&#xff08;寄存柜、快递柜、取餐柜、自提柜&#xff09;、售货机等带触摸工控一体机 2. 物联网网关 【架构实现】 硬件通过串口通信和工控机交互&#xff08;下发开锁指令及反馈锁状态&#xff09;&#xff0c;工控机通过调用服务端webapi方式进行数据…

无人机三角编队控制

一、背景 九架无人机由不同初始位置&#xff0c;集结为正方形编队&#xff0c;之后沿直线变换为三角形编队&#xff0c;保持三角形编队转弯、直线飞行、爬升的仿真过程 实现了21架无人机的编队形成、编队重构、编队保持以及避撞 二、代码 WilliamFun/UAV_swarm_3d_simulation…

AWS CodeWhisperer 简单介绍

一、何为AWS CodeWhisperer Amazon CodeWhisperer能够理解以自然语言&#xff08;英语&#xff09;编写的注释&#xff0c;并能实时生成多条代码建议&#xff0c; 以此提高开发人员生产力。 二、主要功能 Amazon CodeWhisperer 的主要功能&#xff0c;包括代码生成、引用追踪…