Duilib – RichEdit作为日志输出控件,更新日志内容后并自动跳到最后一行
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Duilib – RichEdit作为日志输出控件,更新日志内容后并自动跳到最后一行
原文链接:https://www.stubbornhuang.com/1036/
发布于:2020年12月21日 17:14:34
修改于:2020年12月21日 17:14:34
1 编写界面xml
在界面xml中的需要添加日志显示的位置添加以下代码:
<RichEdit name="RichEdit_Log" text="日志控件" multiline="true" vscrollbar="true" autovscroll="true" readonly="true"/>
设置RichEdit允许多行,文本只读,自动设置垂直滚动条。
2 RichEdit控件更新内容后跳转到最后一行
2.1 bug版本代码
最开始有问题的版本代码如下:
m_RichEditUI->SetText(allLogStr.c_str());
m_RichEditUI->SetTextColor(0xFF000000);
m_RichEditUI->LineDown();
这个写法有个bug,就是程序第一次启动之后,更新日志,当日志越来越多时,RichEdit不会自动跳到最后一行,必须先点击下RichEdit控件,才会正常的跳转到最后一行。
2.2 修改后的代码
在经过很多试验之后,将上述代码进行以下修改:
m_RichEditUI->SetText(allLogStr.c_str());
m_RichEditUI->SetTextColor(0xFF000000);
m_RichEditUI->LineDown();
m_RichEditUI->LineScroll(m_RichEditUI->GetLineCount() - 1);
m_RichEditUI->NeedUpdate();
m_RichEditUI->Invalidate();
加上了:
m_RichEditUI->LineScroll(m_RichEditUI->GetLineCount() - 1);
强制将滚轮设置为最后一行。
然后使用:
m_RichEditUI->NeedUpdate();
m_RichEditUI->Invalidate();
对控件进行强制更新。
最终的效果如下图所示:
当前分类随机文章推荐
- Duilib - 在主界面xml描述文件中使用ChildLayout或者Include嵌入子界面xml描述文件 阅读647次,点赞0次
- Duilib - duilib应用程序实现文件可拖拽的功能 阅读2470次,点赞1次
- Duilib - 使Duilib主窗口前置,但是又不是一直作为最顶层窗口 阅读3085次,点赞2次
- Duilib - 界面出现不可拖动和不可拉伸的问题 阅读279次,点赞0次
- Duilib - 修改程序图标以及任务栏图标 阅读442次,点赞0次
- Duilib - 超链接文本 阅读3689次,点赞0次
- Duilib - 颜色属性的设置 阅读3389次,点赞1次
- Duilib - RichEdit控件发送textchanged消息 阅读1370次,点赞0次
- Duilib - 程序开机自启动 阅读1959次,点赞0次
- Duilib - RichEdit作为日志输出控件,更新日志内容后并自动跳到最后一行 阅读2211次,点赞2次
全站随机文章推荐
- 工具网站推荐 - 几个glTF模型在线预览网站 阅读1097次,点赞0次
- 资源分享 - Visualizing Quaternions 英文高清PDF下载 阅读1825次,点赞0次
- 计算几何 - 求解两个三维向量之间的三维旋转矩阵 阅读1402次,点赞0次
- OpenCV - 指定插值方法改善resize函数缩放图片时出现锯齿、失真、清晰度降低问题 阅读719次,点赞0次
- 资源分享 - Introduction to 3D Game Programming with DirectX 9.0 英文高清PDF下载 阅读1041次,点赞0次
- WordPress - 切换标签离开页面时修改网站title对用户进行提示 阅读65次,点赞0次
- 资源分享 - Python3网络爬虫开发实战 崔庆才著 高清PDF下载 阅读3676次,点赞0次
- C++ - 获取std::vector中的最小值、最大值以及对应的索引 阅读232次,点赞0次
- C++11/std::condition_variable - 生产者消费者模型 阅读2879次,点赞0次
- WordPress - 禁用XML-RPC接口,禁止访问xmlrpc.php,避免DDOS攻击,防止暴力破解 阅读2821次,点赞0次
RichEdit控件可以增加文字提示嘛,鼠标移入就消失,如果离开为空就显示提示语
DuiLib_Ultimate这个有,tipvalue这个属性。如果你用的官方库,可以参考DuiLib_Ultimate修改,重新编译即可。
好的