Duilib – RichEdit控件发送textchanged消息
1 RichEdit无法像Edit一样发出textchanged消息 最近在写一个小工具的时候,发现Duilib的RichEdit控件无法发出textchanged消息,就是说没有办法检测到RichEdit中的文本是否被改变,这限制了很多逻辑实现,比如说当当前RichEdit控件内的文本发生变化时,…
- Duilib
- 2021-11-22
Duilib – RichEdit和List等控件增加垂直滚动条vscrollbar和水平滚动条hscrollbar
1 在RichEdit控件中增加垂直滚动条和水平滚动条失败,不显示滚动条 之前在富文本编辑框控件RichEdit中使用属性 vscrollbar="true" autovscroll="true" 中调用垂直滚动条与自动滚动属性,总是没有在RichEdit的控件里面看到垂直滚动条。这几天通过查看官方…
- Duilib
- 2021-11-22
Duilib – 点击按钮弹出模态对话框
1 模态对话框 是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击确定或取消按钮等将该对话框关闭。模态对话框垄断了用户的输入。当一个模态对话框打开时,用户只能与该对话框进行交互,而其他用户界面对象收不到输入信息。模态对话框下,用户需要操作目标对话框就必须先操作模态对话…
- Duilib
- 2021-11-16
C++11 – 构建一个符合实际应用要求的线程池
1 什么是线程池 线程池从本质上可以看做是一个多生产者多消费者的多线程应用。 一个线程池包括以下四个基本组成部分: 线程池管理器:用于创建并管理线程池,包括创建线程池,销毁线程池,添加新的工作线程,添加工作任务; 工作线程:属于线程池中的线程,用于处理实际任务,在没有工作任务时等待,在任务队列不为空…
- C++
- 2021-11-08
C++ – C++使用cuda api获取当前GPU显卡的总共的显存容量、已使用显存容量、剩余显存容量
1 C++使用cuda api获取当前GPU显卡的显存容量、已使用显存、剩余显存 在一些使用场景下,当我们的应用程序需要从显卡中开辟显存时,为了增加程序的健壮性,常常需要在开启程序的时候获取当前电脑是否有足够的显存,在这一层面,所有的系统都没有提供太好的公用api可供调用,所以需要使用N卡的cuda…
- C++
- 2021-10-29
C++11 – 解析并获取可变参数模板中的所有参数
1 C++11解析并获取可变参数列表中的所有参数 C++11的新特性--可变参数模板(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。相比C++98/03,类模版和函数模版中只能含固定数量的模版参数,可变模版参数…
- C++
- 2021-10-27
C++11 – 封装std::thread,增加子线程启动、暂停、唤起、停止功能
1 封装std::thread,增加子线程启动、暂停、唤起、停止功能 C++标准库的std::thread已经为C++增加了很好的跨平台多线程编程体验,程序员只需要使用标准库std::thread就可以写出很好的多线程并发程序。但是在std::thread中对线程的控制需要自主控制。 我们经常会在子…
- C++
- 2021-10-21
C++ – C++实现Python numpy的矩阵维度转置算法,例如(N,H,W,C)转换为(N,C,H,W)
1 C++实现Python numpy的矩阵维度转置算法,例如(N,H,W,C)转换为(N,C,H,W) 1.1 python中使用numpy进行矩阵维度变换 在python中常常使用numpy的transpose对矩阵的维度进行转换,这里以(N,H,W,C)转换为(N,C,H,W)为例,请看一下代…
- C++
- 2021-10-15
OpenCV – cv::Mat与unsigned char*数组或者float*数组相互转换,cv::Mat与std::vector的相互转换
1 使用常规方法将cv::Mat转换为unsigned char数组或者float数组 通常情况下,在同一个opencv项目传递cv::Mat可直接通过const cv::Mat& img这种方式传递,但是如果需要进行跨语言传递,比如C++传递到C#或者C#传递到C++,那么通常这种情况下需…
- OpenCV
- 2021-10-14
C++ – 函数返回多个返回值的方法总结
1 C++函数如何像python一样返回多个返回值 使用过python的童鞋都知道,在python单个函数中可以返回多个函数值,比如: # -*- coding: utf-8 -*- def return_muliti_value(): return 1,'helloworld',[1,2,3] i…
- C++
- 2021-10-13
OpenCV – 将图片/视频转换为深度学习模型输入格式,BGR通道转RGB,图片归一化,HWC转CHW
1 将图片转换为深度模型输入格式 在C++进行人脸识别、目标检测的过程中,经常是以图片数据作为深度学习模型推理的输入数据的,但是从OpenCV读取的图片数据并不能直接用于深度学习模型的推理过程。 首先,OpenCV读取图片默认使用的是BGR通道排列方式,而深度学习模型一般使用RGB通道排列的方式; …
- OpenCV
- 2021-09-23
C++ – 判断本机文件是否存在的方式总结
C++ - 判断本机文件是否存在的方式总结 由于C++没有像python那样方便的os.path官方库,经常面临着判断一个文件是否在本机上存在都不易用,今天就总结下C++下判断本机文件是否存在的一些方法。 1 通用方法 1.1 使用std::ifstream判断 #include <iostr…
- C++
- 2021-09-15