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

【PyQt】超级超级笨的pyqt计算器案例

计算器

1.QT Designer设计外观

  • 1.pushButton
  • 2.textEdit
  • 3.groupBox
  • 4.布局设计
    在这里插入图片描述

2.加载ui文件

导入模块:
  • sys:用于处理命令行参数。

  • QApplication:PyQt5 应用程序类。

  • QWidget:窗口基类。

  • uic:用于加载 .ui 文件。

  • QIcon:用于设置窗口图标。

MyWindow 类:
  • 继承自 QWidget,用于创建主窗口。

  • init 方法中调用 self.init_ui() 初始化界面。

  • init_ui 方法中加载 .ui 文件并设置窗口图标和标题。

加载 .ui 文件:
  • 使用 uic.loadUi(“./计算器.ui”) 加载 .ui 文件,并将其赋值给 self.ui。

  • self.ui 是一个包含 .ui 文件中所有控件的对象。

设置窗口图标和标题:
  • 使用 setWindowIcon 设置窗口图标。

  • 使用 setWindowTitle 设置窗口标题。

显示窗口:
  • 在 if name == “main”: 中创建 QApplication 和 MyWindow 实例,并调用 w.ui.show() 显示窗口。
import sysfrom PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5 import uicclass MyWindow(QWidget):def __init__(self):super().__init__()self.init_ui()def init_ui(self):self.ui = uic.loadUi("./计算器.ui")print(self.ui.__dict__)  # 查看ui文件中有哪些控件self.ui.setWindowIcon(QIcon('img.png'))self.ui.setWindowTitle("傻瓜计算器")  # 修改标题的名称
if __name__=="__main__":app = QApplication(sys.argv)w = MyWindow()# 展示窗口w.ui.show()app.exec()

代码解释

超级呆瓜的初始化,刚开始学习QT有点呆,欢迎大家讨论,共同进步

    def __init__(self):super().__init__()self.init_ui()def init_ui(self):self.ui = uic.loadUi("./计算器.ui",self)# print(self.ui.__dict__)  # 查看ui文件中有哪些控件self.ui.setWindowIcon(QIcon('img.png'))self.ui.setWindowTitle("计算器")  # 修改标题的名称self.x = ""# 初始化控件self.textEdit = self.ui.textEdit # 计算过程框self.textEdit_2 = self.ui.textEdit_2 # 计算结果框self.pushButton_1=self.ui.pushButton_1 # C :清零self.pushButton_2 = self.ui.pushButton_2 # X:后退一格self.pushButton_3 = self.ui.pushButton_3 # %:百分号self.pushButton_4 = self.ui.pushButton_4 # /:除号self.pushButton_5 = self.ui.pushButton_5 # 7self.pushButton_6 = self.ui.pushButton_6 # 8self.pushButton_7 = self.ui.pushButton_7 # 9self.pushButton_8 = self.ui.pushButton_8 # *:乘号self.pushButton_9 = self.ui.pushButton_9 # 4self.pushButton_10 = self.ui.pushButton_10 # 5self.pushButton_11 = self.ui.pushButton_11 # 6self.pushButton_12 = self.ui.pushButton_12 # -:减法self.pushButton_13 = self.ui.pushButton_13 # 1self.pushButton_14 = self.ui.pushButton_14 # 2self.pushButton_15 = self.ui.pushButton_15 # 3self.pushButton_16 = self.ui.pushButton_16 # +:加法self.pushButton_17 = self.ui.pushButton_17 # eself.pushButton_18 = self.ui.pushButton_18 # 0self.pushButton_19 = self.ui.pushButton_19 # .self.pushButton_20 = self.ui.pushButton_20 # =:等号# 设置框的样式self.textEdit.setText("0")self.textEdit.setAlignment(Qt.AlignRight)  # # 设置文本右对齐self.textEdit.setReadOnly(True)  # 只能进行读取self.textEdit.setStyleSheet("font-size: 24px; height: 60px;")  # 设置字体样式self.textEdit_2.setText("result")self.textEdit_2.setAlignment(Qt.AlignRight)  # # 设置文本右对齐self.textEdit_2.setReadOnly(True)  # 只能进行读取self.textEdit_2.setStyleSheet("font-size: 24px; height: 60px;")  # 设置字体样式# 设置按钮格式for i in range(20):x = f"pushButton_{i+1}"self.pushButton_name = getattr(self, x)  # 动态访问按钮对象self.pushButton_name.setStyleSheet("font-size: 18px; padding: 10px;")self.text = self.pushButton_name.text()self.pushButton_name.clicked.connect(lambda _, t=self.text: self.on_button_click(t))

简单的计算功能

  • 清零
  • 计算结果
  • 显示文本
    def on_button_click(self, text):# 可以获取所有符号print(text)if text == 'C':self.reset_calculator()elif text == '=':self.calculate_result()else:self.text_shaw(text)

清零

    def reset_calculator(self):self.textEdit.clear()self.textEdit.setText("0")self.textEdit.setAlignment(Qt.AlignRight)  # 设置文本右对齐self.textEdit.setReadOnly(True)  # 只能进行读取self.textEdit_2.setText("....")self.textEdit_2.setAlignment(Qt.AlignRight)  # 设置文本右对齐self.textEdit_2.setReadOnly(True)  # 只能进行读取self.x = ""

计算结果

    def calculate_result(self):all_text =  self.textEdit.toPlainText()print(all_text)print(type(all_text))try:result = sp.sympify(all_text)print(f"表达式 '{all_text}' 的计算结果是: {result}")self.textEdit_2.setText(f"{result}")self.textEdit_2.setAlignment(Qt.AlignRight)except sp.SympifyError as e:print(f"无法解析表达式: {e}")

显示文本

    def text_shaw(self,text):self.x += f"{text}"self.textEdit.setText(self.x)self.textEdit.setAlignment(Qt.AlignRight)

键盘输出

    def keyPressEvent(self, event):key = event.text()print(key)if key in '0123456789.+-*/':self.on_button_click(key)print(key)elif event.key() in (Qt.Key_Enter, Qt.Key_Return):self.on_button_click('=')elif event.key() == Qt.Key_Escape:self.reset_calculator()

整体代码

import sys
import re
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit
from PyQt5 import uic
import sympy as sp #计算的库,可以实现四则运算class MyWindow(QWidget):def __init__(self):super().__init__()self.init_ui()def init_ui(self):self.ui = uic.loadUi("./计算器.ui",self)# print(self.ui.__dict__)  # 查看ui文件中有哪些控件self.ui.setWindowIcon(QIcon('img.png'))self.ui.setWindowTitle("计算器")  # 修改标题的名称self.x = ""# 初始化控件self.textEdit = self.ui.textEdit # 计算过程框self.textEdit_2 = self.ui.textEdit_2 # 计算结果框self.pushButton_1=self.ui.pushButton_1 # C :清零self.pushButton_2 = self.ui.pushButton_2 # X:后退一格self.pushButton_3 = self.ui.pushButton_3 # %:百分号self.pushButton_4 = self.ui.pushButton_4 # /:除号self.pushButton_5 = self.ui.pushButton_5 # 7self.pushButton_6 = self.ui.pushButton_6 # 8self.pushButton_7 = self.ui.pushButton_7 # 9self.pushButton_8 = self.ui.pushButton_8 # *:乘号self.pushButton_9 = self.ui.pushButton_9 # 4self.pushButton_10 = self.ui.pushButton_10 # 5self.pushButton_11 = self.ui.pushButton_11 # 6self.pushButton_12 = self.ui.pushButton_12 # -:减法self.pushButton_13 = self.ui.pushButton_13 # 1self.pushButton_14 = self.ui.pushButton_14 # 2self.pushButton_15 = self.ui.pushButton_15 # 3self.pushButton_16 = self.ui.pushButton_16 # +:加法self.pushButton_17 = self.ui.pushButton_17 # eself.pushButton_18 = self.ui.pushButton_18 # 0self.pushButton_19 = self.ui.pushButton_19 # .self.pushButton_20 = self.ui.pushButton_20 # =:等号# 设置框的样式self.textEdit.setText("0")self.textEdit.setAlignment(Qt.AlignRight)  # # 设置文本右对齐self.textEdit.setReadOnly(True)  # 只能进行读取self.textEdit.setStyleSheet("font-size: 24px; height: 60px;")  # 设置字体样式self.textEdit_2.setText("result")self.textEdit_2.setAlignment(Qt.AlignRight)  # # 设置文本右对齐self.textEdit_2.setReadOnly(True)  # 只能进行读取self.textEdit_2.setStyleSheet("font-size: 24px; height: 60px;")  # 设置字体样式# 设置按钮格式for i in range(20):x = f"pushButton_{i+1}"self.pushButton_name = getattr(self, x)  # 动态访问按钮对象self.pushButton_name.setStyleSheet("font-size: 18px; padding: 10px;")self.text = self.pushButton_name.text()self.pushButton_name.clicked.connect(lambda _, t=self.text: self.on_button_click(t))# 实现了按键显示def on_button_click(self, text):# 可以获取所有符号print(text)if text == 'C':self.reset_calculator()elif text == '=':self.calculate_result()else:self.text_shaw(text)def reset_calculator(self):self.textEdit.clear()self.textEdit.setText("0")self.textEdit.setAlignment(Qt.AlignRight)  # 设置文本右对齐self.textEdit.setReadOnly(True)  # 只能进行读取self.textEdit_2.setText("....")self.textEdit_2.setAlignment(Qt.AlignRight)  # 设置文本右对齐self.textEdit_2.setReadOnly(True)  # 只能进行读取self.x = ""def calculate_result(self):all_text =  self.textEdit.toPlainText()print(all_text)print(type(all_text))try:result = sp.sympify(all_text)print(f"表达式 '{all_text}' 的计算结果是: {result}")self.textEdit_2.setText(f"{result}")self.textEdit_2.setAlignment(Qt.AlignRight)except sp.SympifyError as e:print(f"无法解析表达式: {e}")result = re.split(r"([+*/-])", all_text) # 保留分隔符print(result)def text_shaw(self,text):self.x += f"{text}"self.textEdit.setText(self.x)self.textEdit.setAlignment(Qt.AlignRight)def keyPressEvent(self, event):key = event.text()print(key)if key in '0123456789.+-*/':self.on_button_click(key)print(key)elif event.key() in (Qt.Key_Enter, Qt.Key_Return):self.on_button_click('=')elif event.key() == Qt.Key_Escape:self.reset_calculator()if __name__=="__main__":app = QApplication(sys.argv)w = MyWindow()w.ui.show()app.exec()

界面展示
在这里插入图片描述
有任何问题可以联系我,欢迎大家来讨论,共同进步。

相关文章:

【PyQt】超级超级笨的pyqt计算器案例

计算器 1.QT Designer设计外观 1.pushButton2.textEdit3.groupBox4.布局设计 2.加载ui文件 导入模块: sys:用于处理命令行参数。 QApplication:PyQt5 应用程序类。 QWidget:窗口基类。 uic:用于加载 .ui 文件。…...

每日一题——小根堆实现堆排序算法

小根堆实现堆排序算法 堆排序的基本思想堆排序的步骤 实现步骤1. 构建小根堆2. 删除最小元素并调整堆 C语言实现输出示例代码解释1. percolateDown 函数2. buildMinHeap 函数3. heapSort 函数4. printArray函数 排序过程详解步骤1:构建小根堆步骤2:删除堆…...

k8s集群

文章目录 项目描述项目环境系统与软件版本概览项目步骤 环境准备IP地址规划关闭selinux和firewall配置静态ip地址修改主机名添加hosts解析 项目步骤一、使用kubeadm安装k8s单master的集群环境(1个master2个node节点)1、互相之间建立免密通道2.关闭交换分…...

数据分析系列--[11] RapidMiner,K-Means聚类分析(含数据集)

一、数据集 二、导入数据 三、K-Means聚类 数据说明:提供一组数据,含体重、胆固醇、性别。 分析目标:找到这组数据中需要治疗的群体供后续使用。 一、数据集 点击下载数据集 二、导入数据 三、K-Means聚类 Ending, congratulations, youre done....

技术架构师成长路线(2025版)

目录 通用知识 计算机原理(1 - 2 个月) 数据结构(2 - 3 个月) 网络编程(1 - 2 个月) 软件工程(1 个月) 基础知识 Java 编程语言基础(2 - 3 个月) JVM&…...

NetLify账号无法登录解决办法

本文收录在【建站】专栏内,专栏目录:【建站】专栏目录 用github账号登录时,说校验失败 Authentication Error Authenticating failed due to the following error: Your account requires additional verification. Please check your email…...

linux本地部署deepseek-R1模型

国产开源大模型追平甚至超越了CloseAI的o1模型,大国崛起时刻!!! DeepSeek R1 本地部署指南   在人工智能技术飞速发展的今天,本地部署AI模型成为越来越多开发者和企业关注的焦点。本文将详细介绍如何在本地部署DeepS…...

集合通讯概览

集合通信概览 (1)通信的算法 是根据通讯的链路组成的 (2)因为通信链路 跟硬件强相关,所以每个CCL的库都不一样 芯片与芯片、不同U之间是怎么通信的 多卡训练:多维并行(xxx并行在上一期已经讲述…...

如何解决云台重力补偿?

如何解决云台重力补偿? 最近在调试步兵云台的时候,由于枪管、图传、摄像头等重力的原因,pitch轴的参数尤其难以调整,又不想抬升和降低使用两套不同的参数,所以使用了重力补偿,效果也是比较理想的,于是整理为一篇文章记录一下 一、问题根源:枪管重力在“搞事情” 想象…...

【LeetCode 刷题】回溯算法(4)-排列问题

此博客为《代码随想录》二叉树章节的学习笔记,主要内容为回溯算法排列问题相关的题目解析。 文章目录 46.全排列47.全排列 II 46.全排列 题目链接 class Solution:def permute(self, nums: List[int]) -> List[List[int]]:res, path [], []used [0] * len(n…...

FPGA|IP核PLL调用测试:建立工程

闲来无事,测试下FPGA的IP核调用 一、生成工程 1、打开软件新建工程 2、命名为PLL_test 3、选择芯片型号 4、生成工程如图...

数据的表示和运算

一-定点数的表示 1-定点数和浮点数 定点数:小数点的位置固定(常规计数) 浮点数:小数点的位置不固定(科学计数法) 2-定点数的表示 ①无符号数 整个机器字长的全部二进制位均为数值位,没有符号…...

文字显示省略号

多行文本溢出显示省略号...

22.Word:小张-经费联审核结算单❗【16】

目录 NO1.2 NO3.4​ NO5.6.7 NO8邮件合并 MS搜狗输入法 NO1.2 用ms打开文件,而不是wps❗不然后面都没分布局→页面设置→页面大小→页面方向→上下左右:页边距→页码范围:多页:拼页光标处于→布局→分隔符:分节符…...

鲸鱼算法 matlab pso

算法原理 鲸鱼优化算法的核心思想是通过模拟座头鲸的捕食过程来进行搜索和优化。座头鲸在捕猎时会围绕猎物游动并产生气泡网,迫使猎物聚集。这一行为被用来设计搜索策略,使算法能够有效地找到全局最优解。 算法步骤 ‌初始化‌:随机生成一…...

c++之模板进阶

在前面的文章中,我们已经简单的了解了模板的使用,在这篇文章中,我们将继续深入探讨模板 1.模板的特化 1.1 概念 通常情况下,使用模板可以实现一些与类型无关的代码,但对于一些特殊类型的可能会得到一些错误的结果&a…...

C语言中的信号量

信号是操作系统中用来传递特定消息的机制。操作系统可以使用这种方式将程序运行过程中发生的各类特殊情况发送给程序,并按照其指定的逻辑进行处理。信号名称都以 “SIG” 作为前缀,如程序访问非法内存时,会产生名为 SIGSEGV 的信号。 程序需…...

AI主流大模型介绍和API价格比较

主流的大模型系列 ###1. OpenAI: GPT-4,GPT-4 Turbo, GPT-4o OpenAI 的介绍: 全称:Open Artificial Intelligence,简称OpenAI。性质:起初为非营利性组织,后转变为由营利性公司OpenAI LP及非营…...

自主Shell命令行解释器

什么是命令行 我们一直使用的"ls","cd","pwd","mkdir"等命令,都是在命令行上输入的,我们之前对于命令行的理解: 命令行是干啥的?是为我们做命令行解释的。 命令行这个东西实际上是我们…...

git笔记-简单入门

git笔记 git是一个分布式版本控制系统,它的优点有哪些呢?分为以下几个部分 与集中式的版本控制系统比起来,不用担心单点故障问题,只需要互相同步一下进度即可。支持离线编辑,每一个人都有一个完整的版本库。跨平台支持…...

重新刷题求职2-DAY1

DAY1 1.704. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 最普通的二分查找,查用的习惯左闭右…...

浅析DDOS攻击及防御策略

DDoS(分布式拒绝服务)攻击是一种通过大量计算机或网络僵尸主机对目标服务器发起大量无效或高流量请求,耗尽其资源,从而导致服务中断的网络攻击方式。这种攻击方式利用了分布式系统的特性,使攻击规模更大、影响范围更广…...

路径规划之启发式算法之二十九:鸽群算法(Pigeon-inspired Optimization, PIO)

鸽群算法(Pigeon-inspired Optimization, PIO)是一种基于自然界中鸽子群体行为的智能优化算法,由Duan等人于2014年提出。该算法模拟了鸽子在飞行过程中利用地标、太阳和磁场等导航机制的行为,具有简单、高效和易于实现的特点,适用于解决连续优化问题。 更多的仿生群体算法…...

SwiftUI 在 Xcode 预览修改视图 FetchedResults 对象的属性时为什么会崩溃?

概览 从 SwiftUI 诞生那天起,让秃头码农们又爱又恨的 Xcode 预览就在界面调试中扮演了及其重要的角色。不过,就是这位撸码中的绝对主角却尝尝在关键时刻“掉链子”。 比如当修改 SwiftUI 视图中 FetchedResults 对象的属性时,Xcode 预览可能…...

pytorch实现基于Word2Vec的词嵌入

PyTorch 实现 Word2Vec(Skip-gram 模型) 的完整代码,使用 中文语料 进行训练,包括数据预处理、模型定义、训练和测试。 1. 主要特点 支持中文数据,基于 jieba 进行分词 使用 Skip-gram 进行训练,适用于小数…...

MVC 文件夹:架构之美与实际应用

MVC 文件夹:架构之美与实际应用 引言 MVC(Model-View-Controller)是一种设计模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种架构模式不仅提高了代码的可维护性和可扩展性,而且使得开发流程更加清晰。本文将深入探讨MVC文…...

Python在线编辑器

from flask import Flask, render_template, request, jsonify import sys from io import StringIO import contextlib import subprocess import importlib import threading import time import ast import reapp Flask(__name__)RESTRICTED_PACKAGES {tkinter: 抱歉&…...

The Simulation技术浅析(四):随机数生成

随机数生成技术 是 The Simulation 中的核心组成部分,广泛应用于蒙特卡洛模拟、密码学、统计建模等领域。随机数生成技术主要分为 伪随机数生成器(PRNG,Pseudo-Random Number Generator) 和 真随机数生成器(TRNG,True Random Number Generator)。 1. 伪随机数生成器(PR…...

centos stream 9 安装 libstdc++-static静态库

yum仓库中相应的镜像源没有打开,libstdc-static在CRB这个仓库下,但是查看/etc/yum.repos.d/centos.repo,发现CRB镜像没有开启。 解决办法 如下图开启CRB镜像, 然后执行 yum makecache yum install glibc-static libstdc-static…...

Java自定义IO密集型和CPU密集型线程池

文章目录 前言线程池各类场景描述常见场景案例设计思路公共类自定义工厂类-MyThreadFactory自定义拒绝策略-RejectedExecutionHandlerFactory自定义阻塞队列-TaskQueue(实现 核心线程->最大线程数->队列) 场景1:CPU密集型场景思路&…...

Shell $0

个人博客地址:Shell $0 | 一张假钞的真实世界 我们已经知道在Shell中$0表示Shell脚本的文件名,但在有脚本调用的情形中,子脚本中的$0会是什么值呢?我们通过下面的实例来看。 已测试系统列表: Mac OS X EI Capitan 1…...

C++ Primer 标准库类型string

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...

51c嵌入式~电路~合集25

我自己的原文哦~ https://blog.51cto.com/whaosoft/13241709 一、“开关电源”和“普通电源”的区别 什么叫开关电源 随着电力电子技术的发展和创新,使得开关电源技术也在不断地创新。目前,开关电源以小型、轻量和高效率的特点被广泛应用几乎所有的电…...

Vue3学习笔记-Vue开发前准备-1

一、安装15.0或更高版本的Node.js node -v npm -v 二、创建Vue项目 npm init vuelatest 三、Vue项目结构 node_modules: Vue项目运行的依赖文件public:资源文件夹package.json:信息描述文件...

架构技能(四):需求分析

需求分析,即分析需求,分析软件用户需要解决的问题。 需求分析的下一环节是软件的整体架构设计,需求是输入,架构是输出,需求决定了架构。 决定架构的是软件的所有需求吗?肯定不是,真正决定架构…...

51单片机 05 矩阵键盘

嘻嘻,LCD在RC板子上可以勉强装上,会有一点歪。 一、矩阵键盘 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式;采用逐行或逐列的“扫描”,就可以读出任何位置按键的状态。&#xf…...

服务SDK三方新版中央仓库和私服发布详解

预备信息Github仓库发布Gradle版本匹配Gradle项目构建全局变量定义Gradle项目Nexus仓库配置与发布过程Gradle项目发布至Sonatype中央仓库配置过程总结当我们在实现一个项目技术总结、工具类封装或SDK封装,通常是为了方便开发者使用特定服务或平台而提供的一组工具和API。您可能…...

jmeter响应数据编码设置

jmeter响应数据编码设置 如果查看结果树的响应数据存在中文乱码,可以尝试以下方法: 1、找到jmeter的bin目录下的 jmeter.properties 文件,修改如下配置: 去掉sampleresult.default.encodingUTF-8前面的#号 2、保存文件后&#x…...

FPGA学习篇——开篇之作

今天正式开始学FPGA啦,接下来将会编写FPGA学习篇来记录自己学习FPGA 的过程! 今天是大年初六,简单学一下FPGA的相关概念叭叭叭! 一:数字系统设计流程 一个数字系统的设计分为前端设计和后端设计。在我看来&#xff0…...

Leetcode:680

1,题目 2,思路 首先就是判断它不发生改变会不会是回文如果不是回文,那么俩个指针从前往后与从后往前做对比如果俩字符不同,那就俩种选择,一种是保留前面的字符去掉后面字符,另一种是其反然后俩种选择只要满…...

Python教学:文档处理及箱线图等

代码1: import os import pandas as pd import numpy as py import os.path from os import listdir import openpyxl from openpyxl import Workbook import re import matplotlib.pyplot as plt # 导入matplotlib的绘图模块,用于可视化 cwdos.getcwd…...

SQLGlot:用SQLGlot解析SQL

几十年来,结构化查询语言(SQL)一直是与数据库交互的实际语言。在一段时间内,不同的数据库在支持通用SQL语法的同时演变出了不同的SQL风格,也就是方言。这可能是SQL被广泛采用和流行的原因之一。 SQL解析是解构SQL查询…...

C++STL(一)——string类

目录 一、string的定义方式二、 string类对象的容量操作三、string类对象的访问及遍历操作四、string类对象的修改操作五、string类非成员函数 一、string的定义方式 string是个管理字符数组的类,其实就是字符数组的顺序表。 它的接口也是非常多的。本章介绍一些常…...

C++ Primer 迭代器

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...

排序算法--归并排序

归并排序是分治法的经典实现&#xff0c;适合大规模数据排序&#xff0c;尤其适合需要稳定排序的场景&#xff08;如数据库排序&#xff09; #include <stdlib.h> // 用于动态内存分配 // 合并两个已排序的子数组 void merge(int arr[], int left, int mid, int right) …...

深入探讨DICOM医学影像中的WADO服务及其具体实现

1. 引言 随着数字化医学影像技术的普及&#xff0c;如何高效、安全地存储、管理和共享医学影像数据成为医疗行业亟待解决的关键问题。DICOM&#xff08;Digital Imaging and Communications in Medicine&#xff09;作为国际公认的医学影像标准&#xff0c;在全球范围内广泛应…...

自定义数据集 使用paddlepaddle框架实现逻辑回归

导入必要的库 import numpy as np import paddle import paddle.nn as nn 数据准备&#xff1a; seed1 paddle.seed(seed)# 1.散点输入 定义输入数据 data [[-0.5, 7.7], [1.8, 98.5], [0.9, 57.8], [0.4, 39.2], [-1.4, -15.7], [-1.4, -37.3], [-1.8, -49.1], [1.5, 75.6…...

信息学奥赛一本通 2112:【24CSPJ普及组】地图探险(explore) | 洛谷 P11228 [CSP-J 2024] 地图探险

【题目链接】 ybt 2112&#xff1a;【24CSPJ普及组】地图探险&#xff08;explore&#xff09; 洛谷 P11228 [CSP-J 2024] 地图探险 【题目考点】 1. 模拟 2. 二维数组 3. 方向数组 在一个矩阵中&#xff0c;当前位置为(sx, sy)&#xff0c;将下一个位置与当前位置横纵坐…...

xxl-job 在 Java 项目的使用 以一个代驾项目中的订单模块举例

能搜到这里的最起码一定知道 xxl-job 是用来干什么的&#xff0c;我就不多啰嗦怎么下载以及它的历史了 首先我们要知道 xxl-job 这个框架的结构&#xff0c;如下图&#xff1a; xxl-job-master&#xff1a;xxl-job-admin&#xff1a;调度中心xxl-job-core&#xff1a;公共依赖…...

javaEE-8.JVM(八股文系列)

目录 一.简介 二.JVM中的内存划分 JVM的内存划分图: 堆区:​编辑 栈区:​编辑 程序计数器&#xff1a;​编辑 元数据区&#xff1a;​编辑 经典笔试题&#xff1a; 三,JVM的类加载机制 1.加载: 2.验证: 3.准备: 4.解析: 5.初始化: 双亲委派模型 概念: JVM的类加…...