热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Qt中QTextEdit使用小技巧

QTextEdit是富文本编辑框,在使用中具有自动换行的功能。当然你也可以使用QLabel+\n换行也具有相同的效果。但是你需要根据QFontMetrics类来计算当前字符串的长度。例如:

QTextEdit是富文本编辑框,在使用中具有自动换行的功能。当然你也可以使用QLabel+'\n'换行也具有相同的效果。但是你需要根据QFontMetrics类来计算当前字符串的长度。

 例如:

  QFont font("times", 24);

  QFontMetrics fm(font);
  int pixelsWide = fm.width("What's the width of this text?");
  int pixelsHigh = fm.height();
计算当前文本的宽度用于来换行,这种计算的方式还是不是很精准,会致使文字换行长短不一。
当然也有简单的方式实现文本的换行,让看起开就像label标签的形式一样,那就是用qtextedit,让它自动换行,但是也是有问题的就是当视口的大小小于文本显示的内容高度的时候就会出滚动条,
,这样很影响美观,就比如我在一个qtablewidget的某个单元格内需要一个能够支持换行功能的节点,我们都知道,qtablewidgeitem是不支持换行功能的,即使+‘\n’也是不支持的,因此我们在
qtablewidget中调用setcellwidget就可以把我们能够支持换行的界面放进去了,这时我们可以放入qtextedit,为了不使qtextedit出现滚动条,我们可以是指定行高为qtextedit的高度+
qtextedit的maximumHeight高度值,并且使qtextedit的滚动条隐藏,这样就可以使qtablewidget的节点为支持换行的节点。
example:
  QTextEdit *pEdit = new QTextEdit();
  pEdit->verticalScrollBar()->hide();
  pText->setReadOnly(true);
  pEdit->setText(str);
  QTableWidget *pTableWgt = new QTableWidget(this);
  pTableWgt->setColumnCount(1);
  pTableWgt->insertRow(0);
  pTableWgt->setCellWidget(0, 0, pEdit);
  pTableWgt->setRowHeight(pEdit->height() + pEdit->verticalScrollBar()+maximum());
记得是指样式表:
  QTextEdit{border:none;}

如上图效果


推荐阅读
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • Tkinter Frame容器grid布局并使用Scrollbar滚动原理
    本文介绍了如何使用Tkinter实现Frame容器的grid布局,并通过Scrollbar实现滚动效果。通过将Canvas作为父容器,使用滚动Canvas来滚动Frame,实现了在Frame中添加多个按钮,并通过Scrollbar进行滚动。同时,还介绍了更新Frame大小和绑定滚动按钮的方法,以及配置Scrollbar的相关参数。 ... [详细]
  • 涉及的知识点-ViewGroup的测量与布局-View的测量与布局-滑动冲突的处理-VelocityTracker滑动速率跟踪-Scroller实现弹性滑动-屏幕宽高的获取等实现步 ... [详细]
  • 人脸检测 pyqt+opencv+dlib
    一、实验目标绘制PyQT界面,调用摄像头显示人脸信息。在界面中,用户通过点击不同的按键可以实现多种功能:打开和关闭摄像头, ... [详细]
  • 注:根据Qt小神童的视频教程改编概论:利用最新的Qt5.1.1在windows下开发的一个小的时钟程序,有指针与表盘。1.Qtforwindows开发环境最新的Qt已经集 ... [详细]
  • java unhandled,Eclipse编辑java文件报Unhandled event loop exception错误的解
    本人Eclipse版本是”eclipse-jee-kepler-SR2-win32-x86_64“昨天因为换电脑,所以重装了一下软件,装好eclipse ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • [echarts] 同指标对比柱状图相关的知识介绍及应用示例
    本文由编程笔记小编为大家整理,主要介绍了echarts同指标对比柱状图相关的知识,包括对比课程通过率最高的8个课程和最低的8个课程以及全校的平均通过率。文章提供了一个应用示例,展示了如何使用echarts制作同指标对比柱状图,并对代码进行了详细解释和说明。该示例可以帮助读者更好地理解和应用echarts。 ... [详细]
  • 我用Tkinter制作了一个图形用户界面,有两个主按钮:“开始”和“停止”。请您就如何使用“停止”按钮终止“开始”按钮为以下代码调用的已运行功能提供建议 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了css回到顶部按钮相关的知识,希望对你有一定的参考价值。 ... [详细]
  • html结构 ... [详细]
author-avatar
pan0608
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有