- 博客(39)
- 收藏
- 关注
原创 一、词类和句子
1)名词(n.): 表示人、事物、地点或抽象概念的名称。如:boy, morning, bag, ball, class,orange.2)代词(pron.): 主要用来代替名词。如:who, she, you, it .3)形容词(adj):表示人或事物的性质或特征。如:good, right, white, orange .4)数词(num.): 表示数目或事物的顺序。如:one, two, three, first, second, third, fourth.
2024-04-19 16:42:02
796
原创 Boost之Python
需要注意的是,尽管 Boost::Python 提供了许多便利的功能,但它的实现依赖于 Python/C API,因此在使用时要结合 Python/C API 的相关知识。此外,Boost::Python 的某些功能可能还不完善,需要开发者对 Python/C API 有一定的了解,以便在遇到问题时能够进行调试和解决。总的来说,Boost::Python 为 C++ 和 Python 之间的互操作提供了一个强大而灵活的工具,使得开发者能够充分利用两种语言的优势,实现更加高效和强大的应用程序。
2024-04-14 11:08:13
952
原创 Boost之date_time
Boost.Date_Time库是一个功能丰富的时间日期处理库,它提供了多种用于日期和时间计算、格式化、转换和输入输出的功能。
2024-04-13 17:48:17
335
原创 psutil库(获取系统资源信息)
psutil库是Python的一个第三方模块,它提供了丰富的接口来获取操作系统和系统硬件的信息。以下是psutilCPU信息获取:可以使用psutil来获取CPU的逻辑数量和物理核心数量。这有助于了解系统的处理能力。磁盘使用情况psutil能够报告磁盘的使用情况,包括总容量、已用空间和可用空间。内存使用情况:可以获取系统的内存使用情况,包括总内存、已用内存和空闲内存。网络相关信息psutil能够提供网络统计信息,如当前网络连接、带宽使用等。进程管理。
2024-04-06 15:15:08
775
原创 文件系统监视库(watchdog)
Watchdog库能够监控文件和目录的创建、修改、删除和移动等操作。它通过使用底层原生API(如Windows的ReadDirectoryChangesW、Linux 2.6+的inotify以及Mac OS X的kqueue或FSEvents)来优先实现高效的监控,如果不支持这些API,则通过轮询磁盘的方式进行监控。总的来说,Python Watchdog库是一个强大而灵活的工具,可以帮助开发者轻松地实现文件系统变化的监控,适用于需要实时响应文件变化的各种应用场景。
2024-04-05 21:56:45
583
原创 C++ templates: (4)、引用折叠
引用折叠(Reference collapsing)是C++11中引入的一种规则,用于处理函数模板参数的类型和值完全匹配的情况。当一个非const左值引用和一个右值引用绑定到同一块内存时,引用折叠会发生。在函数模板参数中,T&&称作万能引用,可以转发const 左值引用,左值引用和右值引用。
2024-04-05 15:53:22
293
原创 左值、右值、左值引用、右值引用
综上所述,左值和右值的主要区别在于是否可以被赋值和取地址,而左值引用和右值引用则是基于这两种值类型的引用,分别用于不同的场景和目的。
2024-04-05 13:37:06
213
原创 zookeeper之基本命令
create [-s] [-e] [-c] [-t ttl] path [data] [acl]容器节点是Zookeeper 3.5版本以后新增的节点类型,与普通节点(持久节点)的主要区别在于其自动清理的特性和专门的使用场景。具体如下: delete [-v version] path deleteall path [-b batch size]Zookeeper的命令用于删除指定的节点。具体来说,命令有两种形式,一种是单独使用,另一种是结合命令一起使用。delete命令格式:注意事项
2024-04-04 22:46:03
1533
原创 C++ templates: (1)、类模板
可以理解为模板的一个特例,需要特殊处理的情况。说明如何转化类模板构造函数的参数类型。1、类模板定义(主模板)2、模板特化(偏特化)4、成员类型的别名模板。
2024-04-04 10:43:40
377
原创 Boost之Log: (3)、简单封装
1、每个Logging source对应一个目录,可以设置日志文件数,日志大小,目录名,文件名等。2、每个logging source的对应的目录都在一个根目录下。3、可以动态创建和删除logging source。
2024-04-02 22:13:19
772
原创 Boost之Log: (2)、代码练习
日志源有宽字节版、单字节版、多线程版、单线程版、带严重等级的版本 下面这行代码创建了一个宽字符、多线程安全、有日志严重等级的日志源: boost::log::sources::wseverity_logger_mt log; 可以给每个日志源设置属性,也可以设置全局的日志属性,这里属性的的作用是为了给日志记录添加属性,比如给日志源log添加了属性A,那么用日志源log生成的日志记录都会有A这个属性,后面的日志过滤和日志格式化,都可以围
2024-04-02 19:28:56
528
原创 Boost之Log: (1)、功能简介
2、把生成的日志记录(log record)传递给日志核心模块,这里可以过滤日志(如果用户有设置过滤器),最后把剩下的日志记录传递给每个日志槽(logging sink)1、日志源(Loging Source)生成日志记录,设置一些日志记录的属性,如线程ID,时间,行号,文件名,函数名,严重等级等,后续的日志过滤都是根据这些属性来过滤.Boost.Log是。
2024-04-01 16:23:48
1022
原创 Qt和Boost::asio中的emit冲突
signals修改为Q_SIGNAL,1.添加编译宏定义QT_NO_KEYWORDS。2、把QT工程中的emit修改成Q_EMIT,slots修改为Q_SLOTS。
2024-03-31 15:15:29
446
原创 C++20之Concept
C++20之Concept(概念部分,之一)_c++ concept-CSDN博客C++20之Concpet(概念部分,之二)_c++ concept-CSDN博客
2024-03-30 13:10:16
468
原创 Boost之cobalt: (2)常用函数介绍
Boost cobalt是一个简单易用的单线程并发框架库,它基于Boost Asio库,对Asio提供的协程功能进行进一步的封装,借鉴了其他语言的一些概念,如promise,generator、race、channel等,简化了C++协程学习难度和代码编写的门槛。
2024-03-29 22:00:58
531
原创 QML之一个属性编辑界面的实现
继续细化,标题栏由一个图片和标题文本组成,属性内容是由N个未知窗口组成,那么第一出现的问题是:怎么让Item的大小随着属性内容的展开和隐藏而变化?我想到的是Column或Row,它们的大小都随内容而变,所以只要把包含了标题栏和属性内容的Column的implicitWidth赋值给Item控件的implicitWidth即可。每一类属性都可以展开和隐藏,每一类下的属性都不一样,全部展开后,所有属性共享一个滚动条。我的第一个想法是,这是一个ListView控件,每一个Item都可以展开隐藏。
2024-03-28 18:08:06
662
原创 QML之SpinBox
今天使用SpinBox,为了使界面风格统一,需要修改控件的边框颜色,文本颜色,点击时的背景颜色和文本颜色,这时需要对SpinBox作一定程度的定制化。弄清除了上面两条信息后,就可以开始自定这个控件了,唯一需要注意的是,左右两个按钮的大小需要设置正确,不然会显示不出来,这里需要用。SpinBox主要有三部分组成:左右两个按钮,可以点击,中间一个文本框,用来显示数字或者其他文本。左右两个按钮对应SpinBox的down.indicator和up.indicator参数,
2024-03-27 21:25:08
706
原创 CMake之Presets编写
在CMake工程实践中, 经常需要使用不同的配置编译来编译代码,比如要编译Debug、Relase版本,32位、64位版本,动态链接,静态链接, 使用不同的编译器, 如gcc、msvc, 不同的平台,如Windows、Linux、Android等。如果vscode安装了CMake插件,再写一个CMakePresets.json文件,那么vscode就是一个简化版的IDE工具了,可以鼠标点击切换配置,选择编译的目标文件,调试,运行测试用例,打包,或者执行自定义脚本任务.
2024-03-27 11:26:43
1842
原创 使用cmake组织QML工程代码
2、把一些代码编译成模块,这样才能注册QML自定义类型。1、添加资源文件,主要是图片资源和qml文件资源。3、设置A的编译源文件时用到的头文件路径。4、设置A依赖的动态库或静态库。1、创建一个可执行文件A。2、设置A需要的源文件。
2024-03-26 22:29:00
541
原创 QM中implicitWidth和width的区别,为什么需要两种大小?
来提供一种建议大小,这样在使用该控件时,如果没有特别指定大小,控件会尝试使用这些建议值来渲染。而在需要固定大小的情况下,可以外部指定具体的。此外,之所以需要这两种大小属性,是因为在不同场景下,控件可能需要不同的尺寸行为。例如,在自定义控件时,可以通过设置。分别代表了控件的隐式推荐的默认宽度和明确指定的宽度。,控件将尽可能地填充其容器的宽度,而不考虑其他宽度设置。通常用于表达控件的首选宽度,但不会强制执行,除非配合使用。则是直接指定控件的宽度,它会覆盖所有的隐式宽度设置。来确保控件按照预期的尺寸显示。
2024-03-24 10:46:36
927
1
原创 Linux录屏工具byzanz
d, --duration=SECS 动画的时间 (默认:10 秒)-x, --x=像素 要录制矩形的 X 坐标。-y, --y=像素 要录制矩形的 Y 坐标。-c, --cursor 录制鼠标光标。-w, --width=像素 录制矩形的宽度。-h, --height=像素 录制矩形的高度。-a, --audio 录音。-v, --verbose 详细。
2024-03-22 14:30:22
154
原创 Linux窗口自动化工具: xdotool
我本来是想找一款工具来获取鼠标的实时坐标,然后得到软件的界面的坐标,方便进行录屏,xdotool没有直接提供这个功能,但是却可以通过脚步来间接实现。下面脚本可以用来获取激活窗口的的坐标。xdotool可以模拟鼠标和键盘的动作行为,可以用来查询窗口,移动窗口,激活窗口,关闭窗口,获取窗口的坐标,获取鼠标的坐标等。
2024-03-22 14:10:56
425
原创 Linux颜色拾取器-Gpick
1.把鼠标移动到任意一点,然后用Ctrl+C命令(也就是文本复制快捷键),这是RGB格式的颜色值就复制了剪切板上,Ctrl+V就粘贴到文本上了。2.把鼠标移动到任意一点,按键盘的空格键,就会录入一个颜色值,他们会保存在上图的左上角Color pciker这里。做界面开发时经常需要取获取屏幕上的颜色值,今天介绍一个Linux免费软件Gpick,可以获取屏幕上任意一点的像素值。
2024-03-22 12:54:00
334
原创 QML之ListView
最近在写一个网络测试小工具,需要用到ListView来显示收到和发送的网络消息,需要能显示消息收到的时间,消息的发送方,还有消息内容,为了防止占用内存过多,要能设置界面上最多显示的消息数量,超过后自动删除最早的消息。感觉主要难点还是这么多窗口的颜色配置,颜色不合适界面就很丑。
2024-03-21 22:02:30
527
原创 QML之TreeView的使用
注: 测试环境为Opensuse 15.5 + Qt 6.6.2。如果有大神知道其他解决办法的,请评论区发出来。
2024-03-20 13:14:37
1385
原创 几种Model的简单使用
此时Model只有一个信息,数据项的个数是多少,没有项数据。由于是JS中的数组,所以数组里的数据类型可以不同。下面主要来介绍下QML中几种Model的使用。对象的属性作为每一项属性。
2024-03-18 18:13:01
361
原创 OpenSuse下Qt安卓虚拟机和VirtualBox虚拟机冲突的问题
sudo modprobe kvm_amd (我是AMD的CPU)找了一圈都没有找到让两者同时启动的办法,只能通过modprobe命令来完成切换。但此时却无法启动VirtualBox虚拟机了,提示如下错误。然后再尝试 启动VirtualBox,这时可以正常启动了。上述命令执行完之后,中可以看到Android虚拟机的界面。这个错误是让我禁用KVM模块,于是执行。
2024-03-16 13:47:21
418
CMake-QML示例代码
2024-03-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人