logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

重写QWidget,实现QLineEdit的基本功能

负责 text、cursor、selection、preedit、maxLength、echoMode。只有在你要完全自绘、自己控制光标、选区、输入法、焦点行为时,才建议直接继承 QWidget 重写。如果只是想改样式、限制输入、加按钮、改行为,优先继承 QLineEdit。负责 insert、delete、replace、undo、redo。把插入、删除、替换封装成命令,顺手就能加 undo/r

#qt
QTextDocument 功能和用法详解

它本身不负责“像浏览器那样显示网页”,而是把文本、段落、图片、表格、列表、块级格式、字符级格式这些内容组织成一个可布局、可绘制、可编辑的文档树,然后交给布局器去排版,再交给绘制层输出到屏幕、打印机或任意 QPainter 目标。QTextDocument 相关类关系图,将QTextCursor、QTextBlock、QTextLayout、QAbstractTextDocumentLayout 一

#qt
C++ Coroutines(协程) 详解

它不能像某些有栈协程那样在任意深层函数处直接切出去,只有在显式的 co_await、co_yield、co_return 这些语义点才能挂起。这段代码虽然没什么实际用途,但足以说明一件事:协程返回类型背后必须有一个 promise_type,编译器靠它决定如何构造、挂起、恢复和结束协程。让你看到 promise 怎么保存结果,handle 怎么 resume,co_await 怎么取值。也就是说,

#c++
浮点数在计算机中存储格式详解

在计算机里不是直接存“9.721 这几个十进制字符”,而是先转成二进制科学计数法,再按 IEEE 754 的。本文再讲解浮点数再计算机中存储的详细过程,比如double类型的9.721的整个转换和存储过程。要靠“乘 2 取整”反复展开,它不是一个有限二进制小数,所以会变成无限展开。,编译器会把它转换成“最接近 9.721 的那个 binary64 值”。这就是为什么浮点数经常会出现“看起来一样,底

到底了