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

【用python的QT做信号处理的界面】

文章目录

    • 入口文件
    • 界面参数调整
    • 数据从dat解析出来的文件
    • 从界面点击打开文件夹的功能实现
    • 主要功能代码
    • 网络参数
    • 存图
    • 替换功能,比如把倒频谱替换成倒频谱2

入口文件

入口文件,主要用来实例化窗口(不重要),只要知道从这里进入Ui_MainWindow()就行.
在这里插入图片描述

界面参数调整

这个地方是qt_signal2.py文件里面,从刚刚的入口文件进来到这,setupUi是用来设置窗口的各种属性,比如展示界面的各个按钮(名字带有button的)、勾选窗口(名字带有checkbox的)、还有信号图(名字带有label的)… 还有一些其他的。

如果要调整窗口大小,找到QtCore.QRect(WIN_X-1000, 10, 900, 150),可以自己不断运行,然后调整到合适的位置就可以。不同的电脑显示屏,需要设置不同的大小,正常来说改WIN_X和WIN_Y就行(WIN_X是主窗口的长,WIN_Y是主窗口的宽度),如果改这两个后还是不正常再修改,里面的数字分别表示(距离左边的距离,距离上面的距离、组件的长度、组件的宽度)。

setStyleSheet是设置组件颜色与边界粗细的。
在这里插入图片描述弹窗的属性修改在这个文件最后面,也是对应位置修改尺寸。
在这里插入图片描述

数据从dat解析出来的文件

下面这段在util.py里面。读取dat文件要根据对应说明文档的方式,主要内容在while True里面,根据文档先读取头文件,然后把头文件里面解析出来的字节长度等信息放在head这个列表里面。然后unpack_once再根据头文件里面的说明,从刚刚放入的列表里解析出最后的数据。

下面这个是文件里面的配置,上面那个是程序解析需要的,float形或者int形之类的,下面那个是上面对应位置的字节长度,如果有改动这两个也要对应修改。
DATA_TYPE_DICT={1:‘>?’,2:‘>b’,3:‘>h’,4:‘>i’,5:‘>f’,6:‘>d’,7:‘>c’}
DATA_LENTH=[1,1,2,4,4,8,1]
在这里插入图片描述

从界面点击打开文件夹的功能实现

这两个函数是内置的可以批量选择文件的函数,后来改了只用到load_data_batch,只能多选。里面的r"D:\论文\毕业论文\qt\qt\新建数据文件夹"表示默认打开的文件夹位置。
self.file_list = [x for x in file_path if “.txt” in x or “.dat” in x] 表示只能读txt文件或者dat文件,如果要加其他类型在 ] 前面加 or “.xxx” in x就行。
在这里插入图片描述

主要功能代码

主要运行文件在qt_signal_qthread.py,里面的run函数。这个是多图处理的流程,单图处理的会报错。
在这里插入图片描述

网络参数

网络参数有很多,可以看哪个最合适。网络参数填写是在n2n/test.py文件里的test函数中。
在这里插入图片描述

在这里插入图片描述

存图

存图基本上都是下面的格式.
限制x轴和y轴的方法:
里面的参数ylim([0,0.2])表示限制y轴为0到0.2,如果没效果就这么改:在plt.plot前面写data[data>0.2]=0.2 把y轴大于0.2的都置0.2。
如果要限制x轴长度,把plt.plot里面的两个参数都改成axis_x[:1000]和data[:1000]。表示x轴只取从左往右1000个点。要截取中间的1000个点也可以,百度python列表查询了解一下就知道了。

如果出来的图异常,一般是这个DPI和figsize不对。figsize表示存图的长宽尺寸。DPI用500或者1000,figsize要根据界面参数调整里面说的信号显示窗口的长宽比例来调整这个比例,不改窗口这个比例就不用调。
fig = plt.figure(dpi=DPI,figsize=(12.8,6.4/2))
在这里插入图片描述util.py里面,下面这个是存图的文件名后缀。
在这里插入图片描述

替换功能,比如把倒频谱替换成倒频谱2

1.在qt_signal_qthread.py的run函数里面,找到算倒频谱的地方,把save_signal函数的参数‘倒频谱’改成对应的名字,图上就会显示修改后的名字。
2.替换计算函数,把计算倒频谱的函数替换成需要的函数,函数需要返回一个列表,列表里的每个元素按顺序是每个信号点经过计算后的输出。
在这里插入图片描述
3.在qt_signal2.py里的这个函数里面,把checkbox对应的名字改成修改后的名字,界面上勾选窗口位置的名字也就改掉了,这个地方也可以改按钮的名字,找到改掉就行。
![在这里插入图片描述](https://img-blog.csdnimg.cn/f81a6f11b119439a85d12eec51981268.pn

相关文章:

【用python的QT做信号处理的界面】

文章目录 入口文件界面参数调整数据从dat解析出来的文件从界面点击打开文件夹的功能实现主要功能代码网络参数存图替换功能,比如把倒频谱替换成倒频谱2 入口文件 入口文件,主要用来实例化窗口(不重要),只要知道从这里…...

【Linux】进程间通信 —— 管道

文章目录 📕 进程间通信介绍📕 匿名管道原理使用读写规则特点 📕 命名管道原理使用匿名管道和命名管道的区别 📕 进程间通信介绍 进程间通信,顾名思义,就是两个进程之间的 “交流” ,我们知道&…...

知识管理在企业中的重要性

随着经济全球化和信息化的快速发展,企业面临着越来越多的竞争和挑战。如何把握市场动态、满足客户需求、提高产品质量和效率等,成为了企业发展中亟待解决的问题。而知识管理作为一种新兴的管理方式,逐渐引起了企业们的重视。本文将从以下几个…...

Socks5、网络安全、代理IP技术详解

随着互联网的发展,网络安全问题越来越受到人们的关注。为了保护个人隐私和网络安全,使用代理服务器成为了一种普遍的选择。其中,Socks5协议是一种常见的代理协议,而代理IP是使用代理服务器时经常需要考虑的问题。本文将深入探讨So…...

C++学习day--09 字符串比较、运算符

1、项目练习 第 1 节 项目需求、项目实现 项目实现&#xff1a; #include <iostream> #include <Windows.h> #include <string> using namespace std; int main( void ) { string name; string pwd; std::cout << " 请输入账号&am…...

缓存和数据库一致性问题

如何保证缓存和数据库一致性&#xff0c;这是一个老生常谈的话题了。 但很多人对这个问题&#xff0c;依旧有很多疑惑&#xff1a; 到底是更新缓存还是删缓存&#xff1f; 到底选择先更新数据库&#xff0c;再删除缓存&#xff0c;还是先删除缓存&#xff0c;再更新数据库&am…...

4月京东生鲜水果行业数据报告:榴莲销量增长400%,市场格局剧变

众所周知&#xff0c;今年水果领域的一个重磅消息就是&#xff1a;榴莲价格暴跌。目前全国多地线下水果专卖店、农贸市场的榴莲价格都在下滑&#xff0c;有的地区在4月底甚至已经降至最低每斤20元左右。预测在5月的销售旺季&#xff0c;价格还有望一路向下。 •榴莲逆袭苹果&am…...

Windows无法完成格式化怎么办?正确的3个解决方法!

案例&#xff1a;Windows无法完成格式化怎么办 【由于我的U盘使用时间过长&#xff0c;很多文件都是不需要的&#xff0c;我想将其格式化&#xff0c;但插入电脑后&#xff0c;Windows根本无法完成格式化&#xff0c;这是为什么呢&#xff1f;我应该怎么做呢&#xff1f;求答案…...

基于aspnet个人博客网站dzkf6606程序

系统使用Visual studio.net2010作为系统开发环境&#xff0c;并采用ASP.NET技术&#xff0c;使用C#语言&#xff0c;以SQL Server为后台数据库。 1&#xff0e;系统登录&#xff1a;系统登录是用户访问系统的路口&#xff0c;设计了系统登录界面&#xff0c;包括用户名、密码和…...

不黑艺术学社京藏行——参观五台山孙溟㠭为五台山红英师治印

不黑学社社长孙溟㠭先生与五台山菩萨顶主事红英师 不黑学社京藏行&#xff0c;路经五台把佛拜。 巍巍五台清凉境&#xff0c;参访伊始菩萨顶。 感恩“天珠”刘诗语&#xff0c;芬芳佛语满香华。 感恩慈悲红英师&#xff0c;带众参拜大白塔。 菩萨顶上如意宝&#xff0c;莲…...

mysql数据之表管理-mysql高级管理

1. #创建表tt01 #对id字段设置零填充约束、主键约束、自增长约束 #对name字段设置非空约束、默认值约束 #对cardid字段设置非空约束、唯一键约束 插入数据记录&#xff1a; 1&#xff09;因为id字段设置了自增长&#xff0c;如果不指定id字段值&#xff0c;则默认从1开始递…...

公司新来的00后真是卷王,工作没2年,跳槽到我们公司起薪18K都快接近我了

说00后躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷。这不&#xff0c;前段时间我们公司来了个00后&#xff0c;工作都没两年&#xff0c;跳槽到我们公司起薪18K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 …...

面试题30天打卡-day19

1、TCP 和 UDP 协议有什么区别&#xff0c;分别适用于什么场景&#xff1f; TCP&#xff08;Transmission Control Protocol&#xff09;和UDP&#xff08;User Datagram Protocol&#xff09;是两种常用的传输层协议&#xff0c;两者的区别比较如下&#xff1a; TCPUDP可靠性…...

ASEMI代理ADI亚德诺LTC6992IS6-1#TRMPBF车规级芯片

编辑-Z LTC6992IS6-1#TRMPBF参数描述&#xff1a; 型号&#xff1a;LTC6992IS6-1#TRMPBF 输出频率&#xff1a;3.81Hz 工作电源电压范围&#xff1a;2.25 - 5.5V 通电复位电压&#xff1a;1.95V 电源电流&#xff1a;105-365A SET引脚处的电压&#xff1a;1V 频率设置电…...

Oracle PL/SQL基础语法学习15:静态表达式

系列文章目录 Oracle PL/SQL基础语法学习12&#xff1a;短路求值 Oracle PL/SQL基础语法学习13&#xff1a;比较运算符 Oracle PL/SQL基础语法学习14&#xff1a;BOOLEAN表达式 文章目录 系列文章目录前言Oracle PL/SQL基础语法学习15&#xff1a;静态表达式Static Expression…...

B-Tree (多路查找树)分析-20230503

B-Tree (多路查找树)学习-20230503 前言 B-树是一类多路查询树&#xff0c;它主要用于文件系统和某些数据库的索引&#xff0c;如果采用二叉平衡树访问文件里面的数据&#xff0c;最坏情况下&#xff0c;磁头可能需要进行O(h)次对磁盘的读写&#xff0c;其中h为树的高度&…...

OpenGL光照教程之 透光物

引言 我们目前使用的所有光照都来自于一个单独的光源&#xff0c;这是空间中的一个点。它的效果不错&#xff0c;但是在真实世界&#xff0c;我们有多种类型的光&#xff0c;它们每个表现都不同。一个光源把光投射到物体上&#xff0c;叫做投光。这个教程里我们讨论几种不同的投…...

如何使用hook?

目标&#xff1a;将posix函数hook住 一个简单的例子 &#xff08;连接mysql服务&#xff09;&#xff0c;连接成功则打印success mysql.c #include <mysql/mysql.h> #include <stdio.h> int main(){MYSQL* mysql mysql_init(NULL);if(!mysql){printf("my…...

双指针技巧秒杀七道链表题目

文档阅读 文档阅读 题目 141. 环形链表 https://leetcode.cn/problems/linked-list-cycle/ public class Solution {public boolean hasCycle(ListNode head) {ListNode fast head, slow head;while(fast ! null && fast.next ! null){fast fast.next.next;slo…...

在“裸奔”时代保护我们的隐私:网络攻击、数据泄露与隐私侵犯的应对策略与工具

摘要&#xff1a;随着信息技术的普及和发展&#xff0c;个人隐私和数据安全问题日益受到威胁。本文将讨论如何有效应对网络攻击、数据泄露和隐私侵犯&#xff0c;并提供一系列实用的技巧和工具&#xff0c;以帮助我们在“裸奔”时代更好地保护数据安全和隐私。 当今社会&#…...

5步构建智能医疗预约系统:91160-cli全流程实战指南

5步构建智能医疗预约系统&#xff1a;91160-cli全流程实战指南 【免费下载链接】91160-cli 健康160全自动挂号脚本 项目地址: https://gitcode.com/gh_mirrors/91/91160-cli 医疗资源紧张导致的挂号难题&#xff0c;让无数患者在凌晨守候却依然一号难求。如何突破人工抢…...

Element React:革新性UI组件库助力React开发者高效构建企业级应用界面

Element React&#xff1a;革新性UI组件库助力React开发者高效构建企业级应用界面 【免费下载链接】element-react Element UI 项目地址: https://gitcode.com/gh_mirrors/el/element-react 在现代Web应用开发中&#xff0c;界面构建往往占据了开发者大量时间与精力。El…...

C++ 浮点数

在 C 中有以下 3 种数据类型可以表示浮点数&#xff0c;分别是 float、double 和 long double。 float 数据类型被认为是单精度。double 数据类型通常是 float 的两倍大小&#xff0c;因此被认为是双精度。顾名思义&#xff0c;long double 数据类型又比 double 要大。这些数据…...

Spark--一文了解SparkSql的Join策略

文章目录前言一、join 基本要素二、join 实现三、五种join 策略3.1 2 种数据分发模式&#xff08;数据怎么到同一个节点&#xff09;3.1.1 Broadcast Join&#xff08;广播 Join&#xff0c;也叫 Map Join&#xff09;3.1.2 Shuffle Join&#xff08;重分区 Join&#xff0c;也…...

避坑指南:Xilinx PCIe IP的lane反序问题与GT时钟约束的隐藏陷阱

Xilinx PCIe IP实战&#xff1a;破解Lane反序与GT时钟约束的五大核心难题 当你在Vivado中首次生成PCIe IP核时&#xff0c;可能会惊讶地发现硬件实际的lane顺序与代码中的定义完全相反。这不是bug&#xff0c;而是Xilinx默认的设计特性。更棘手的是&#xff0c;GT参考时钟的自动…...

leetcode 1504. Count Submatrices With All Ones 统计全 1 子矩形

Problem: 1504. Count Submatrices With All Ones 统计全 1 子矩形 计算矩阵的前缀和&#xff0c;然后遍历所有的子矩阵&#xff0c;看是否都是1也就是面积等于长乘以宽 都是1的矩阵&#xff0c;可以直接计算得到结果 Code class Solution { public:int numSubmat(vector<…...

当分包时,主包里有未被引用的文件,小程序预览【代码质量】显示包体积过大,不影响发布

1.项目加入分包后预览时显示主包体积超出&#xff1f;排查分包没问题&#xff0c;外部库方法也不会占很多空间2.代码依赖分析【显示 - 主包体积正常】主包实际体积&#xff08;768KB&#xff09;明明远小于 2MB 上限&#xff0c;但工具却提示「主包尺寸应小于 1.5M」且未通过。…...

别再死记硬背了!用‘快递寄送’和‘跨国通话’的比喻,5分钟搞懂OSI七层模型与TCP/IP五层模型

快递与越洋电话&#xff1a;用生活场景拆解网络分层模型 想象一下&#xff0c;你网购的商品从深圳工厂到北京家门口&#xff0c;要经过打包、装车、跨省运输、本地配送多个环节——这和网络数据传输的层层封装如出一辙。而当你给海外亲友视频通话时&#xff0c;双方手机自动协商…...

用NoneBot2给Lagrange机器人加buff:5个提升效率的插件开发技巧

用NoneBot2给Lagrange机器人加buff&#xff1a;5个提升效率的插件开发技巧 在智能对话机器人领域&#xff0c;NoneBot2与Lagrange的组合已经成为QQ生态中高效开发的黄金搭档。但当你已经掌握了基础功能开发后&#xff0c;如何让机器人更智能、更稳定、更能应对复杂场景&#xf…...

如何在Java中使用Thread创建线程

在Java中使用Thread类创建线程是一种常见而直接的方式。你可以继承Thread类并重写其run()定义线程执行的任务的方法。当调用线程对象时start()JVM将为该线程分配资源并自动执行该方法run()方法中的代码。继承Thread类&#xff0c;重写run方法创建线程的第一步是定义一个类继承T…...