自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(180)
  • 资源 (10)
  • 收藏
  • 关注

原创 python基础14 gRPC的流式(stream)传输(二)

上一章节的内容,描述了使用gRPC完成基础的请求和返回。在很多场景下,我们需要用RPC的方式,传输较大的数据流,如文件的上传和下载。为了满足这些需求,gRPC提供了stream的方式。从字面意思来理解,stream是一种数据流,源源不断或连续的数据推送。适用于服务端和客户端进行较大数据量的传输,如上传和下载大数据量的文件。

2025-04-10 12:32:40 289

原创 python基础13 gRPC的使用(一)

包含一系列名称-值对的信息的逻辑记录。每个项目通常称为字段。记录中必须定义字段类型、字段名称和字段编号。字段编号作为唯一标识符,不应更改。它从 1 开始,1 到 15 范围内的数字需要一个字节来编码。另一方面,16 到 2047 范围内的数字需要两个字节进行编码。在上述示例中,gRPC服务接收两个参数(一个int32类型和一个string类型),并返回一个string类型。代表服务定义。每个服务可以有一个或多个具有自己的请求和响应定义的 rpc。//其他rpc定义。

2025-04-09 16:07:49 652

原创 python基础12 模块/库的引用

在此章节,我们总结了基于同级目录下python模块的简单引用,以及基于__init__.py的高阶使用。通过这两种方式的组合,我们将可以实现项目中的各种模块的引用。

2025-04-07 17:21:23 318

原创 QT/C++ 多线程并发下载实践

为了实现多线性并发,我们需要在队列的take方法中启用QMutexLocker来保证线程安全,并启动QWaitCondition的wait方法以及waitone方法来实现元素阻塞式的访问。public://唤醒等待队列中的一个线程(来自wait)T take()//队列为空,则等待,否则直接返回队列头元素private:该类中,定义下载项目和下载任务对象。并在后续的线程池中,作为参数传递给执行函数。//下载项目bool quit;

2025-04-01 15:32:21 289

原创 python基础11 文件读写

该文件必须已存在。。该文件必须已存在,。如需任意位置写,需移动光标。:表示以二进制方式读取文件。该文件必须已存在。。打开即默认创建一个新文件,(即文件内原始数据会被新写入的数据清空覆盖)。。打开创建新文件并写入数据,如果文件已存在,则覆盖写。:表示以二进制写方式打开,只能写文件, 如果文件不存在,创建该文件;如果文件已存在,则覆盖写。。若打开的是已有文件则直接对已有文件操作,若打开文件不存在则创建新文件,只能执行写(追加在后面),不能读。。打开文件方式与写入方式和'a'一样,但是可以读。

2025-03-25 12:31:11 119

转载 python基础10 多线程、多进程和协程

第九章节的日志部分,已经涉及到了多线程和多进程的概念,所以在此章节单独做一个总结。链接中的文章已经讲的比较清晰,作者转载到此供自我学习使用。对于 I/O 密集型任务,如。多个线程同时修改同一个变量时,可能发生。对于 CPU 密集型任务,可以使用。,充分利用多核 CPU;管理线程池比手动创建。提供更高效的异步处理。

2025-03-20 15:07:10 25

原创 python基础9 日志的使用

前面章节,我们已经可以打印python程序中运行的各种状态信息,并捕获各种异常。在实际应用中,我们需要将这些信息记录到文件中,以备后续浏览。所以在此需要使用python的日志功能。

2025-03-19 15:26:40 646

原创 python基础8 单元测试

通过前面的7个章节,作者学习了python的各项基础知识,也学习了python的编译和执行。但在实际环境上,我们需要验证我们的代码功能符合我们的设计预期,所以需要结合python的单元测试类,编写单元测试代码。Python有一个内置的unittest模块,我们可以使用它来进行单元测试。

2025-03-18 14:56:59 1035

原创 python基础7 异常捕获

Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。python有很多内置的标准异常,列表如下:python处理异常有两种语法结构:try....except...else和try....except...finally。具体示例如下:也可以在一个分支类,处理多个异常类,语法结构如下:try....except...finally语法定义:具体示例:具体示例示例中,testfil

2025-03-18 09:40:00 918

原创 python基础6 类/库的引用

现实中,我们通常会将类定义在不同的python文件中,于是就涉及到不同python文件之间的调用。

2025-03-17 15:35:35 224

原创 python基础5 __slots__和@property的使用

python是一种类似JavaScript的动态语言,允许对象在运行时自由添加属性。python定义一个特殊的__slots__变量,来限制对象可以添加的属性。__slots__

2025-03-17 14:44:13 112

原创 python基础4 类的继承和多态

当使用多重继承时,Python通过一个称为方法解析顺序(MRO)的规则来确定如何从父类中查找属性和方法。MRO定义了属性和方法搜索的顺序。如果在子类中找不到属性或方法,Python会首先在第一个父类中查找,然后是第二个父类,以此类推,直到找到为止

2025-03-17 12:25:16 157

原创 python基础3 类的定义和使用

在Car类的定义中,如果要把color和number定义为私有属性,不让外界直接访问,那么可以在属性名称前添加两个下划线。在这个章节中,我们学习了python类属性和方法的定义,类的初始化,私有属性和函数的定义。从上面的输出可以看到,添加两个下划线。

2025-03-17 11:07:59 170

原创 python基础2 字符串 list和tuple

在Python中,字符串格式化,用。

2025-03-14 17:20:55 246

原创 python学习1 基础知识

整数的定义和其他语言基本类似,区别如下:python中,整数允许添加分割,和是完全一样的。十六进制也是如此,如0xaa_bb。浮点数可以使用基础的数据类型1.233.141.23x109就是1.23e9;0.000012可以写成1.2e-5。字符串可以使用'和"包围来表示,如'this is string'和"this is string"。转移字符与其他语言类似,使用"\"来进行字符转义,如'I\'m \"OK\"!' 实际表示字符串I'm "OK"!

2025-03-13 15:05:35 144

原创 ubuntu20.04 编译vtk 9.3.1+vtkDicom+GDCM 3.0.24

cmake-gui如下图所示,选择源码目录和build目录:勾选 BUILD_SHARED_LIBS以及VTK_DEBUG_LEAKS。作者喜欢用vtkDicom库,添加了对vtkDicom的使用,所以启用了vtkDicom编译条件VTK_MODULE_ENABLE_VTK_vtkDICOM,添加方式如下:执行configure,在完成后的界面勾选使用gdcm。再次执行configure,提示错误,需要输入GDCM的路径。所以我们进入下一个环节,编译GDCM。

2024-09-12 14:05:39 810

原创 ubuntu20.04 Qt6引用dcmtk库实现dicom文件读取和字符集转换

安装完Qt6,新建Qt/QtQuick CMake工程编译出现如下错误:Found package configuration file: Qt6Config.cmake but it set Qt6 FOUND to FALSE so package "Qt6" is considered to be NOT FOUND.原因:这是因为系统中缺少OpenGL库,可以安装libgl1-mesa-dev解决方法:项目编译成功后运行,如果出现如下错误:qt.qpa.plugin: Could not lo

2024-09-10 15:17:27 544

原创 ubuntu 20.04 编译dcmtk

检查是否安装cmake。如已安装,则显示正常显示cmake版本号。如显示错误,则需要安装cmake。

2024-09-10 14:26:12 672

原创 胶片打印、排版(三)

自定义布局支持多种子布局方式。可根据需要添加各种子布局。

2024-08-27 14:39:12 502

原创 QT全局气泡类型提示框【自动宽度、多屏自适应居中】

运行效果与参考链接类似。

2024-05-22 16:33:57 1290 2

转载 dicom文件遍历

网上有很多方法对dicom的文件信息进行遍历,目前找到一个总结的比较好的,记录在此。

2023-07-21 16:06:19 280

原创 基于UDP的可靠传输,文件+目录(C++,Qt)

pub.h 定义通用数据类型和转换方法///请求类型定义file,folder///请求定义int type;//reqTypefileReq()///QString转string///string转QStringconfig.h 定义基础配置信息Q_OBJECTpublic:~config();///获取本地存储路径///获取本地服务端口///设置本地存储路径///设置本地服务端口private:///本地存储路径///本地服务端口。

2023-07-21 15:30:10 1556 1

原创 胶片打印、排版、自助打印(二)

灰度图像打印:彩色图像打印:通常情况下RGB类型DICOM图像包含如下的内容:图像的高度图像的宽度图像像素间距,读取Pixel Data的时候不需要,主要用于长度测量。一个像素取样点存储时分配到的位数,一般RGB的图像,每一个颜色通道都使用8位,所以一般取值为8。对于灰度图像,如果是256级灰阶,一般就是8位。如果高于256级灰阶,一般就采用16位。一个像素取样点存储时使用到的位数。比方说示例中CT影像,采用的是4K灰阶,像素值取值范围为0~4095,所以使用到的位数为12位。

2023-05-23 16:36:29 2134 1

原创 胶片打印、排版、自助打印

胶片打印、排版、自助打印。

2022-11-21 18:05:57 1954 2

原创 flutter Dio插件的使用 (十三)

Dio对象在App请求中一般在单例对象中使用,用来与后端进行普通的网络请求,如POST\GET等。Dio支持使用拦截器对所有的请求进行拦截,从而进行特殊处理,如增加token参数、请求和响应日志记录等。参考代码片段:引用头文件:import 'package:dio/dio.dart';import 'interceptor/http_interceptor.dart';在类的构造中,添加自定义的拦截器:class ThingsboardClient { ///....

2022-04-02 11:23:17 2612 1

原创 flutter 关键字 factory (十二)

最近一直在学习dart语言,以及类的定义和使用。在偶然的机会,看到了factory开头的定义的构造函数。所以查了一些资料来加深学习。 使用factory标识的类的构造函数,类似于设计模式中的单例模式,用来实例化只会创建一次的对象。具体使用参考如下的代码(来源:flutter 中factory(构造方法上的唯一对象) 与单例模式_Mars-xq的博客-优快云博客_flutter工厂函数怎么用):class Manager { // 工厂模式 : 单例公开访问点 factory...

2022-04-02 10:49:40 2198

原创 flutter 日志功能(十一)

如要使用flutter官方的日志类,需要添加对该库的依赖:dependencies: flutter: sdk: flutter logger: ^1.0.0在使用的类中,添加对logger包的引用:import 'package:logger/logger.dart';对logger类的简单使用:var logger = Logger();logger.d("debug messages!");不同级别日志的输出:///详细日志logger.v("V

2022-03-11 11:47:30 5729

原创 Dart语言Future、async、await异步(十)

像其他程序语言一样,dart主程序也是单线程执行的。如下的程序: String Step1() { return "Step1"; } String Step2() { return "Step2"; } String Step3() { return "Step3"; } void testA() { print(Step1()); print(Step2()); print(Step3()); }将按顺序执行

2022-03-10 16:34:34 415

原创 flutter+Dart 类的继承extends with implements (九)

主要涉及到三个关键字 extends、 with、 implements 。extends是类的继承中最普遍的方式,如要结合后面两个关键字使用,根据文档,需要保证操作顺序:extends,mixins,implements。示例如下:class ThingsboardAppState extends State<ThingsboardApp> with TickerProviderStateMixin implements TbMainDashboardHolder

2022-03-10 14:45:05 3291

原创 FLUTTER PUB GET失败(八)

最近在编译某工程项目的时候,提示缺少某些packages。然后执行PUB GET下载包的时候,提示连接到googleapi的URL失败。找到原因如下:Flutter无法访问资源库在国外的源,所以需配置资源度地址为中国源。修改方式如下:1 对于 Linux 和 MacOS添加如下的环境变量,打开~/.bashrc,在文档最后添加export PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_STORAGE_BASE_URL=htt

2022-03-10 11:47:58 3441

原创 flutter+Dart 类的继承(七)

1 关键字dart类的继承是用 extends关键字。class Person { String name = '张三'; num age = 30; void printInfo() { print('${this.name},${this.age}'); }}class Boy extends Person {}main() { final boy = Boy(); print(boy.name); boy.printInfo();}使用su

2022-03-08 18:06:57 303

原创 flutter+Dart类的创建(六)

flutter+Dart类的创建

2022-03-08 17:25:59 1064

原创 C++调用C#Dll

1 创建C# DLL,需要指定应用类型为“类库”,代码:namespace CSLib{ public class Class1 { private string name; public string Name { get {

2022-03-08 17:00:46 2744

原创 flutter widget super(key: key)的作用(五)

flutter widget super(key: key)

2022-03-08 16:45:02 3204

原创 flutter StatefulWidget 和StatelessWidget(四)

flutter StatefulWidget 和StatelessWidget

2022-03-08 16:09:13 375

原创 flutter Scaffold布局框架(三)

创建程序的时候,对Scaffold感到特别陌生,所以特地学习了下,总结如下:Scaffold总体上来说,就是一个类似android app的简易框架,借助这个框架,可以很方便的创建顶部导航栏,中间主体,右下角浮动按钮,以及底部按钮工具栏。 home: Scaffold( appBar: AppBar( title: const Text('Flutter layout demo'), ), body: ListView(

2022-03-08 15:52:48 804

原创 flutter 核心配置文件(二)

flutter 核心配置文件

2022-03-08 15:18:19 587

原创 flutter代码框架(一)

flutter代码框架

2022-03-08 15:07:17 1295

原创 dcmtk 将raw文件转换为dicom文件

1. 定义一个DcmFileFormat DcmFileFormat m_fileformat;2. 更新传输协议字段m_fileformat.getDataset()->updateOriginalXfer();3. 填充tag信息 FillInfo(DCM_SpecificCharacterSet, m_charset); FillInfo(DCM_MediaStorageSOPInstanceUID, m_image->SO

2021-04-08 10:38:41 1620

原创 关于4K高清分辨率下,QOpenGLWidget无法完整绘制图像问题的解决

最近使用4K摄像头,并在QT程序中启用了高清显示适配设置:#if (QT_VERSION >= QT_VERSION_CHECK(5,8,0)) QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);#endif然后在QOpenGLWidget中进行了绘制:定义:class CQtViewerGl : public QOpenGLWidget, protected QOpenGLFunctions_2_0绘制:

2020-08-07 16:30:10 1886

【可执行程序】基于UDT的文件+目录可靠传输(C++,Qt)

UDP可靠传输,基于UDT开发,支持文件+目录(C++,Qt),支持传输文件和目录。 UDP可靠传输,基于UDT开发,支持文件+目录(C++,Qt),支持传输文件和目录。 UDP可靠传输,基于UDT开发,支持文件+目录(C++,Qt),支持传输文件和目录。 UDP可靠传输,基于UDT开发,支持文件+目录(C++,Qt),支持传输文件和目录。 UDP可靠传输,基于UDT开发,支持文件+目录(C++,Qt),支持传输文件和目录。

2023-07-21

胶片打印演示程序 提供胶片布局切换,自定义布局,连接dicom打印机 支持纸质打印机和图像保存 支持自助打印方案

胶片打印演示程序。提供胶片布局切换,自定义布局,连接dicom打印机。 支持纸质打印机和图像保存。支持自助打印方案。

2022-11-21

医疗器械计算机软件验证方案模板.zip

检查并确认XXXX的计算机系统符合《医疗器械生产质量管理规范》及仪器计算机使用说明书要求,满足使用需求,特根据制定本确认方案,作为对XXX计算机系统验证系统进行确认的依据。本次验证主要对用于我公司由 ****软件、台式电脑及打印机所组成的XXXX系统的安装、运行以及性能进行确认。

2019-11-06

xxx系统__软件项目开发计划.zip

本计划书描述了整个项目生命周期内的工作任务范围、各项工作的任务分解、项目团队组织结构、各团队成员的工作责任、团队内外沟通协作方式、开发进度、项目内外环境条件、 风险对策等。 作为项目团队成员以及项目相关人员之间的共识与约定, 项目生命周期内的所有项目活动的行动基础, 项目团队开展和检查项目工作的依据。

2019-10-15

医疗器械软件描述文档.zip

医疗器械软件描述文档 1. 基本信息 1.1. 产品标识 软件名称: 软件型号: 软件版本号: 软件制造商: 软件生产地址: 1.2. 安全性级别 软件的安全性级别为A/B/C级。理由如下: a) 软件的预期用途为: b) 软件的功能包括: c) 如果软件失效,可能导致以下后果(按软件各功能失效逐条描述,如果软件失效的时候由硬件降低失效后果或危害发生概率,可以做说明,并由此降低安全性级别): 1) …… 2) …… 3) …… 1.3. 结构功能 1.3.1. 组成模块、各模块功能及模块相互关系 依据软件设计规格给出体系结构图(如图1.3-1所示)。

2019-10-15

c++基础教程,简洁扼要.

c++基础教程,简洁扼要.c++基础教程,简洁扼要.c++基础教程,简洁扼要.c++基础教程,简洁扼要.c++基础教程,简洁扼要.c++基础教程,简洁扼要.

2018-05-07

Delphi 气泡对话框 绝对可用

Delphi 气泡对话框 绝对可用 Delphi 气泡对话框 绝对可用 Delphi 气泡对话框 绝对可用Delphi 气泡对话框 绝对可用Delphi 气泡对话框 绝对可用Delphi 气泡对话框 绝对可用Delphi 气泡对话框 绝对可用Delphi 气泡对话框 绝对可用Delphi 气泡对话框 绝对可用

2018-05-07

软件配置管理规范-值得下载

本文用来规范配置管理活动,确保配置项正确地唯一标识并易于存取,保证基准配置项的更改受控,明确基线状态,在整个软件生命周期中建立和维护项目产品的完整性和可追溯性。

2018-05-07

delphi调用Java函数

delphi调用Java函数示例 delphi调用Java函数示例 delphi调用Java函数示例 delphi调用Java函数示例

2009-07-29

Delphi实时显示DOS程序执行代码

Delphi实时显示DOS程序执行代码 Delphi实时显示DOS程序执行代码 Delphi实时显示DOS程序执行代码

2008-11-05

模仿QQ抓图工具(Delphi版)

一个简单的模仿QQ抓图的工具。可以用Ctrl+S截取全屏。Ctrl+Q部分截图。使用很方便。提供程序源码,Delphi初学者可以用来学习一下。

2008-11-05

播放器万能解码器(插件)

播放器万能解码器 安装后可以播放几乎所有的视频文件和音频文件,而不需要再安装其他的播放器。使用起来很方便。自带的WMPlayer已经可以满足播放要求。

2008-11-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除