jjzjj

QTextEdit

全部标签

QT自定义QTextEdit实现大数据的实时刷新显示

文章目录前言一、思路二、关键部分代码1.缓存2.滚动部分代码2.根据每一行最大字节数显示数据三、需要优化的地方总结前言最近使用QT中的QTextEdit控件,作为实时数据显示的UI,在一次写入超过多少k的时候循环写入则会卡顿,网上也没有什么好的解决方案,左思右想自己实现一个类似的demo。后期封装起来继承QWidget就可以在其他地方应用,直接上图:主要功能介绍:1、这里用一个6M多的文件加一个定时器100ms模拟实时数据,可以自定义保存多少数据,默认是保存10M数据;2、行号的显示和隐藏;3、右侧滚动条可以查看保存的数据;4、支持大数据的保存实时刷新。一、思路QT自带的QTextEdit在一

c++ - Qt C++ QTextEdit 打字时计算字数

我需要在QtC++中实现方法,该方法在用户键入时计算QTextEdit中的单词数。此外,当用户键入多个空格时,不应将其视为单词。我知道如何对已经输入的文本执行此操作,但我需要始终更新总字数。你能帮我解决这个问题吗? 最佳答案 我建议您在voidQTextEdit::textChanged()[signal]上连接并使用如下内容:voidonTextChanged(){intwordCount=textEdit->toPlainText().split(QRegExp("(\\s|\\n|\\r)+"),QString::SkipEm

c++ - QRegExpValidator 与 QTextEdit

QRegExpValidator可以与QTextEdit小部件一起使用吗?我尝试通过setValidator()来实现,并且还将qtextedit设置为父对象。但它不起作用。 最佳答案 你应该使用virtualQValidator::StateQRegExpValidator::validate(QString&input,int&pos)constorboolQRegExp::exactMatch(constQString&str)const由你自己。这应该不难,您只需要确定从哪里开始验证。

c++ - QTextEdit 需要越来越多的时间来绘制文本

我正在使用QTextEdit,并以1Hz的速率更新文本(特别是setHTML)。最初setHtml方法很快(只有几毫秒);但是运行12小时后,setHTML返回需要256毫秒,数据是一个5列10行的简单表格。程序运行的时间越长,这种增长就会持续。有人知道发生了什么事吗?而且,更重要的是,我怎样才能让它停止?基本上我正在做的是://getthestarttimeboost::posix_time::ptimestart_time=boost::posix_time::microsec_clock::universal_time();display->setHtml(text);boost

c++ - 将 std::cout 重定向到 QTextEdit

是否有可能(更重要的是-如何-)将输出流重定向到QTextBox。这样如果我写std::cout在应用程序的任何地方它都被重定向到我定义的文本框?我尝试了显而易见的(其中ui.textEdit是指向文本编辑框的指针):std::cout.rdbuf(ui.textEdit);std::cout但是这不起作用。(明显地)。-将cout重定向到qDebug也不起作用(甚至将qDebug重定向到文本字段)。顺便说一句,我正在使用qt4.8...编辑:所以我尝试了邮件列表中发布的解决方案。但是现在出现了访问冲突。classMainInterface:publicQMainWindow{Q_OB

c++ - 发出 textChanged() 信号时获取 QTextEdit 更改

我有一个QTextEdit并将textChanged()插槽连接到一个信号。发出信号时如何找到变化。比如我想在写东西的时候保存光标位置和写的字符。 最佳答案 在发出信号时调用的插槽中,您可以使用QStringstr=textEdit->toplainText();获取文本。您还可以存储以前版本的字符串并进行比较以获取添加的字符及其位置。关于光标位置,您可以使用QTextCurosr类,如本例所示:widget.h文件:#ifndefWIDGET_H#defineWIDGET_H#include#include#include#inc

c++ - 如何在 QTextEdit 中调整图像大小?

如何在QTextEdit中点击图片,按住图片的一角,调整图片大小?或者至少如何获取光标下的图像/选中的图像以更改宽度和高度? 最佳答案 这里是我的实现方式:voidAdvancedTextEdit::resizeImage(){QTextBlockcurrentBlock=m_textEdit->textCursor().block();QTextBlock::iteratorit;for(it=currentBlock.begin();!(it.atEnd());++it){QTextFragmentfragment=it.fra

c++ - 覆盖 QTextEdit 子类中的 keyPressEvent

我在Qt中有以下示例,其中我尝试覆盖QTextEdit子类的keyPressEvent,但给了我“txt::keyPressEvent(QKeyEvent*)的多重定义”,我无法弄清楚原因://txt.h#ifndefTXT_H#defineTXT_H#includeclasstxt:publicQTextEdit{Q_OBJECTpublic:txt(QWidget*parent=0);signals:voidkeyPressEvent(QKeyEvent*e);publicslots:};#endif//TXT_H//txt.cpp#include"txt.h"txt::txt(Q

Qt|QTextEdit编辑文本自动拉伸高度以及踩坑经验

最近做开放项目时,遇到了这样一个需求:使用QTextEdit编辑文本,随着编辑文本的变化,窗口高度自适应拉伸。实现该功能的核心思想:响应QTextEdit::textChanged消息,实时获取QTextEdit高度,当编辑框内容的高度超过最小值时,需要修改QTextEdit的高度。对于TextEdit编辑框自动拉伸的功能,很多博友也有记录,今天主要是针对踩坑经验分析,为大家分享!首先看一下实现效果~接下来,详细讲述如何实现该功能吧!开发环境VS2017+Qt5.14.2功能实现1:拖出控件,更改控件滚动条默认拖出来的控件,当编辑的文本高度超出可视化区域后会出现垂直滚动条。为了不显示右侧滚动条

c++ - 为什么 QPainter 可能会拒绝在 paintEvent 内部工作?

我有:classQTextEditEnter:publicQTextEdit{Q_OBJECTpublic:QTextEditEnter(QWidget*_parent):QTextEdit(_parent){this->setFrameStyle(QFrame::Sunken);//Sunken!}protected:virtualvoidkeyPressEvent(QKeyEvent*event);virtualvoidpaintEvent(QPaintEvent*_event){QTextEdit::paintEvent(_event);QPainterpnt(this);pnt