Linux QT以太网配置及相关知识

news2024/9/27 5:55:21

Linux QT以太网配置及相关知识

    • 平台和内容概述
    • 安装Qt Creator
    • 设计用户界面
    • 编辑源代码
      • 自定义LineEdit
      • 创建槽函数
      • 以太网逻辑功能实现
        • 静态配置
          • ui逻辑:
          • 功能概述
          • 代码实现
          • DNS
        • 退出程序
        • 输入框中的ip规范
        • 保存数据和读取数据
    • 构建文件
    • 编译运行
    • 平台注意点
    • 开机自动配置以太网
    • 总结

平台和内容概述

平台**:AC8015**
运行环境:Linux kernel (4.9) + Systemd + QT 的系统组合,基于编译
框架 Yocto sumo (2.5)构建

基于该平台,编写以太网配置程序,可以动态获取ip;静态配置ip;开机自动配置以太网。
还涉在开发过程中遇到的一些知识点,为了巩固知识,做个记录。

安装Qt Creator

可以从Qt官方网站(https://www.qt.io/download)下载并按照安装说明进行安装。平台使用的是QT 5.63,因此这里使用的是桌面版本,下载安装即可编写程序。(时间上紧急,没有花时间去安装交叉编译器)
在这里插入图片描述

设计用户界面

使用Qt Creator新建一个工程,优先设计ui界面,ui具体设计不做详细描述。
运行图示(可视化设计工具来创建用户界面。打开mainwindow.ui文件,使用Qt Creator的“Design”选项卡来设计你的界面。):
ui文件下载
在这里插入图片描述
在设计界面过程中,id地址,子网掩码,网关,dns对应的QLineEdit输入框需要自定义,通过继承父类QLineEdit来重写focusInEvent函数。简单理解就是配置静态ip相关信息的时候,数字键盘输入的内容能显示到指定的输入框中。(下文代码会具体说明)

Qt Creator的UI设计编辑界面:
在这里插入图片描述
手动编辑该文件.ui文件设计界面:
在这里插入图片描述

编辑源代码

自定义LineEdit

首先是上文提到的自定义LineEdit类的头文件
创建头文件:customlineedit.h

// customlineedit.h
#ifndef CUSTOMLINEEDIT_H
#define CUSTOMLINEEDIT_H
#include <QLineEdit>

// CustomLineEdit类的声明,继承自QLineEdit
class CustomLineEdit : public QLineEdit
{
   
    Q_OBJECT

public:
    // 构造函数,允许在构造时传递父类指针,默认为nullptr
    explicit CustomLineEdit(QWidget *parent = nullptr);

signals:
    // 自定义信号,表示焦点进入事件
    void focusInSignal();

protected:
    // 重写基类的虚函数,处理焦点进入事件
    void focusInEvent(QFocusEvent *event) override;
};

#endif // CUSTOMLINEEDIT_H

  1. #ifndef CUSTOMLINEEDIT_H 和 #define CUSTOMLINEEDIT_H:这是预处理器的条件编译指令,用于防止头文件的多次包含。
  2. #include :引入了Qt框架的QLineEdit类的头文件,因为CustomLineEdit是继承自QLineEdit的子类。
  3. class CustomLineEdit : public QLineEdit:声明了一个类 CustomLineEdit,它是 QLineEdit 的子类。
  4. Q_OBJECT:这是一个Qt宏,用于启用Qt的元对象系统,支持信号与槽(Signals and Slots)机制。
  5. explicit CustomLineEdit(QWidget *parent =
    nullptr);:声明了类的构造函数,允许在构造时传递父类指针,默认为nullptr。
  6. signals::这是一个Qt关键字,用于声明类中的信号。
  7. void focusInSignal();:声明了一个自定义信号 focusInSignal(),用于表示焦点进入事件。
  8. protected::这是一个访问修饰符,表示以下的成员(在这里是 focusInEvent
    函数)对派生类和友元类可见,但对外部类不可见。
  9. void focusInEvent(QFocusEvent *event) override;:声明了一个保护的虚函数,重写了基类
    QLineEdit 中的 focusInEvent 函数,用于处理焦点进入事件。
  10. #endif // CUSTOMLINEEDIT_H:这是条件编译指令的结束标记,表示头文件的结束。

创建源文件customlineedit.cpp

// CustomLineEdit类的构造函数实现
CustomLineEdit::CustomLineEdit(QWidget *parent)
    : QLineEdit(parent)
{
   
    // 构造函数中的初始化列表将父类的构造函数(QLineEdit)传递给基类的构造函数
}

// CustomLineEdit类的focusInEvent(焦点进入事件)的实现
void CustomLineEdit::focusInEvent(QFocusEvent *event)
{
   
    // 调用基类(QLineEdit)的focusInEvent函数,确保基类的相应事件处理逻辑被执行
    QLineEdit::focusInEvent(event);

    // 发射自定义的信号focusInSignal(),表示焦点进入事件已发生
    emit focusInSignal();
}
  1. #include “customlineedit.h”:引入了自定义LineEdit类的头文件,这个文件中应该包含了类的声明。
  2. CustomLineEdit::CustomLineEdit(QWidget *parent) :
    QLineEdit(parent):构造函数的实现,它调用了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1379951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

世界人口数据分析与探索

文章目录 世界人口数据集介绍数据集 1&#xff1a;世界国家统计数据&#xff1a;数据集 2&#xff1a;世界人口详细信息&#xff08;2023 年&#xff09;&#xff1a;数据集 3&#xff1a;按年份划分的世界人口&#xff08;1950-2023&#xff09;&#xff1a; 数据分析导入必要…

Linux中DNS域名解析服务及实验

一、DNS介绍 1、DNS 是域名系统&#xff0c;应用层协议&#xff0c;是互联网的一项服务&#xff0c;是将域名转换成网络可以识别的IP地址&#xff0c;再通过IP地址访问主机。这种由文字组成的名称更容易记忆。 DNS是“域名系统"的英文缩写。它作为将域名和IP地址相互映…

小学信息科技Python课程第2课:坐标与画笔

一、turtle画布与坐标系 在同一平面互相垂直且有公共原点的两条数轴构成平面直角坐标系。在坐标系中&#xff0c;水平方向的轴都称为x轴&#xff0c;垂直方向的轴都称为y轴 它们相交于O点&#xff0c;在这一个点里&#xff0c;x轴的值为0&#xff0c;y轴的值也为0&#xff0c;所…

解决SlF4J配置冲突警告:【SLF4J: Class path contains multiple SLF4J providers】

1、问题背景 最近在启动Springboot的时候出现了SLF4J相关的报红警告&#xff0c;虽然是不影响程序运行&#xff0c;但是作为一个有着代码洁癖的人看的是真难受。 警告信息如下&#xff1a; SLF4J: Class path contains multiple SLF4J providers. SLF4J: Found provider [ch…

WPF真入门教程27--项目案例--设备数据实时监测

1、上图看效果 今天要做的一个案例是这样的效果&#xff0c;它能实时监测车间设备有关数据&#xff0c;并以表格和图形显示在界面上&#xff0c;这个比上个案例要复杂些&#xff0c;颜值也高些&#xff0c;通过这个来巩固wpf的技能&#xff0c;用到了命令绑定&#xff0c;样式…

UCB Data100:数据科学的原理和技巧:第二十一章到第二十六章

二十一、SQL II 原文&#xff1a;SQL II 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 学习成果 介绍过滤组的能力 在 SQL 中执行数据清理和文本操作 跨表连接数据 在本讲座中&#xff0c;我们将继续上次的工作&#xff0c;介绍一些高级的 SQL 语法。 首先&…

PHP在线文档管理系统源码

PHP在线文档管理系统源码 系统功能与介绍 在数据持续、快速增长背景下&#xff0c;企业面临海量非结构化数据处理需求&#xff0c;企业现有架构 通常无法应对海量非结构化数据的管理与应用。 支持私有化部署&#xff0c;完全内网环境下也可正常使用。 Windows、Linux、Mac等全平…

Java异常处理--异常处理的方式1:try-catch-finally

文章目录 一、异常处理概述二、方式1&#xff1a;捕获异常&#xff08;try-catch-finally&#xff09;&#xff08;1&#xff09;抓抛模型&#xff08;2&#xff09;try-catch-finally基本格式1、基本语法2、整体执行过程3、try和catch3.1 try3.2 catch (Exceptiontype e) &…

OSG加载STL模型

下载了2个简单stl模型&#xff0c;用基本的加载代码&#xff1b;直接可以加载&#xff1b; 查一点资料&#xff1b; 怎样在OSG中添加支持STL格式的模型文件&#xff1f; 使用OSG时&#xff0c;如果需要导入STL格式的模型文件&#xff0c;需要添加STL插件。 可以通过在代码中调…

docker compose安装gitlab

环境 查看GitLab镜像 docker search gitlab 拉取GitLab镜像 docker pull gitlab/gitlab-ce 准备gitlab-docker.yml文件 version: 3.1 services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwaysenvironment:GITLAB_OMNIBUS_CONFIG: |external_url…

流量加密之OpenSSL反弹加密

目录 1、OpenSSL 简介 2、使用 OpenSSL 反弹加密 shell 3、使用wireshark抓包验证 4、搭建 HTTPS Server 1、OpenSSL 简介 OpenSSL 是一个强大的、商业级的、功能齐全的开源工具包&#xff0c;用于 TLS&#xff08;以前称为 SSL&#xff09;、DTLS 和 QUIC&#xff08;目前…

怎么把m3u8文件转换为mp4?方法很简单

怎么把m3u8文件转换为mp4&#xff1f;m3u8文件是一种特殊的媒体文件格式&#xff0c;通常用于在线流媒体服务&#xff0c;如HLS&#xff08;HTTP Live Streaming&#xff09;。这种格式在很多场合下都非常有用&#xff0c;比如在线视频播放、直播等。然而&#xff0c;有时候我们…

ubantu运维,nginx相关操作

1、使用 命令ps aux | grep nginx查找nginx 运行目录&#xff0c;如下图&#xff1a; 2、使用 ​​​​​​​命令cd /usr/sbin 切换到nginx 运行目录&#xff0c;如下图&#xff1a; 3、修改配置文件后&#xff0c;使用 nginx -t 命令测试nginx配置文件的语法是否正确&#x…

Mac M1 Parallels CentOS7.9 Install Jenkins

官网: https://www.jenkins.io/ 一、Install & Check Java Env Oracle官网下载Java: https://www.oracle.com/cn/ # 拷贝到Jenkins服务器 scp Downloads/jdk-8u391-linux-aarch64.tar.gz root10.211.55.34:~# 解压 mkdir -p /opt/java && tar -zxvf jdk-8u391-li…

2024最新外卖CPS分销微信小程序源码【前端+后台+数据库+分销功能】

内容目录 一、详细介绍二、效果展示三、源代码下载地址 一、详细介绍 外卖侠CPS全套源码是一款为外卖平台提供分销功能的微信小程序。用户可以通过你的链接去领取外卖红包&#xff0c;然后去下单点外卖&#xff0c;既能省钱&#xff0c;又能获得佣金。该小程序带有商城、影票、…

Java内置锁:深度解析lock和trylock

lock和tryLock是两种获取锁的方式&#xff0c;它们在处理并发问题时有所不同&#xff0c;lock是阻塞性的&#xff0c;确保只有一个线程能访问被锁资源&#xff0c;但可能导致线程长时间等待&#xff1b;而tryLock非阻塞性&#xff0c;若锁被占用则立即返回失败&#xff0c;避免…

大数据人工智能在线实习项目:某实习网站招聘信息采集与分析

01前置课程 Python编程基础 Python网络爬虫实战 Python爬虫环境与爬虫简介 网页前端基础 简单静态网页爬取 常规动态网页爬取 模拟登录 Python数据分析与应用、可视化 数据分析概述 Numpy数值计算 Pandas统计分析与数据预处理 Matplotlib可视化 Pyecharts绘图 02师…

【华为鸿蒙】HarmonyOS开发学习:下载与安装软件看这一篇就够了!

下载与安装软件 DevEco Studio 支持 Windows 和 macOS 系统&#xff0c;下面将针对两种操作系统的软件安装方式进行介绍 Windows 环境 运行环境要求 为保证 DevEco Studio 正常运行&#xff0c;建议您的电脑配置满足如下要求&#xff1a;  操作系统&#xff1a;Windows10 …

【光波电子学】基于MATLAB的多模光纤模场分布的仿真分析

基于MATLAB的多模光纤模场分布的仿真分析 一、引言 &#xff08;1&#xff09;多模光纤的概念 多模光纤&#xff08;MMF&#xff09;是一种具有较大纤芯直径的光纤结构&#xff0c;其核心直径通常在10-50微米范围内。与单模光纤&#xff08;SMF&#xff09;相比&#xff0c;…

回归预测 | MATLAB实现SSA-CNN-GRU-Attention多变量回归预测(SE注意力机制)

回归预测 | MATLAB实现SSA-CNN-GRU-Attention多变量回归预测&#xff08;SE注意力机制&#xff09; 目录 回归预测 | MATLAB实现SSA-CNN-GRU-Attention多变量回归预测&#xff08;SE注意力机制&#xff09;预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SSA…