首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何更改QTextEdit中的currentFont但保留格式- Qt

在Qt中,可以通过以下步骤更改QTextEdit中的currentFont但保留格式:

  1. 获取当前的文本光标:使用QTextEdit的textCursor()函数获取当前文本光标对象。
  2. 获取当前选中的文本:使用文本光标对象的selectedText()函数获取当前选中的文本。
  3. 获取当前选中文本的格式:使用文本光标对象的charFormat()函数获取当前选中文本的格式。
  4. 更改当前字体:使用QFontDialog选择新的字体,并使用setFont()函数将其应用于当前选中文本的格式。
  5. 设置新的字体格式:使用QTextCharFormat的setFont()函数将新的字体格式应用于当前选中文本。
  6. 将新的格式应用于文本:使用文本光标对象的mergeCharFormat()函数将新的格式应用于当前选中文本。

下面是一个示例代码:

代码语言:txt
复制
// 获取当前文本光标
QTextCursor cursor = textEdit->textCursor();

// 获取当前选中的文本
QString selectedText = cursor.selectedText();

// 获取当前选中文本的格式
QTextCharFormat format = cursor.charFormat();

// 使用字体对话框选择新的字体
QFont newFont = QFontDialog::getFont(nullptr, "选择字体", format.font());

// 设置新的字体格式
format.setFont(newFont);

// 将新的格式应用于当前选中文本
cursor.mergeCharFormat(format);

// 将新的格式应用于文本
textEdit->mergeCurrentCharFormat(format);

这样,就可以更改QTextEdit中的currentFont并保留格式。请注意,这只会更改当前选中文本的字体,如果没有选中文本,则会更改光标所在位置的字体。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PyQt5 图形项的定义和交互(一)

如果创建一个自定义的窗口部件并重新实现它的绘制事件,就可以得到任何想要的图形。但如果需要绘制大量的单个项,或者是需要绘制用户能够进行单独交互的项(例如选中、移动、复制粘贴...)...在场景中绘制的项都是QGraphicsItem的子类(图形项)。 图形视图类的一个强大的功能是对图形项应用视图变换,例如缩放和旋转,这些变换可以影响场景的呈现方式,但不会改变图形项的自身类容。...各个视图类基本上是二维的;然而每个项都有一个z值,那些z值较高的项就会绘制在z值较低的项之上。但碰撞检测(collision detection)只基于项的(x,y)坐标。...场景可以有一个前景层,例如可以为场景中每个项绘制网格;场景也可以有一个背景层,可提供一个背景图像或背景色。 项既可以是场景的一些子项,也可以是其它项的子项。...在对项进行定位时,是使用逻辑坐标系的方式来放置它们。第三种坐标系是项所使用的坐标系,它的零点位于项的中心,也就是该项在场景中的位置。

1.9K40

Qt官方示例-文本对象

❝文本对象示例演示如何将SVG文件插入QTextDocument中。❞   QTextDocument包括元素,如文本块和帧的层次结构的。文本对象描述了一个或多个这些元素的结构或格式。...例如,从HTML导入的图像是使用文本对象实现的。文档的布局使用文本对象来布局和渲染(绘制)文档。每个对象都知道如何绘制它们控制的元素,并计算其大小。   ...将具有该文本字符格式的QChar::ObjectReplacementCharacter插入文档中。   该示例包含以下类: SvgTextObject 实现文本对象。...Window显示了可以插入SVG图像的QTextEdit。...文档布局保留了存储为QObject的文本对象的集合,每个文本对象都具有关联的对象类型。布局将关联对象类型的QObject强制转换为QTextObjectInterface。

1.4K10
  • Qt 5.14版本更新细节

    本文翻译并摘录自Qt官网。 新功能(现有模块中) Qt 3D 线程体系结构大更改(线程更改,删除帧缓冲区对象)。 前端/后端节点同步大更改(减少渲染帧的线程同步数量)。...如果您阅读HTML并编写Markdown,或者反之亦然,则应在CommonMark和GitHub规范允许的范围内保留格式(包括标题,表格,项目符号列表,块引号和代码块)。...它们打算在Qt 6中的某个时刻公开(并且我们可以继续迭代API,直到那时,尤其是跟上即将在Qt 6中对QEvent类进行的更改)。...Qt Widgets QTextEdit和QTextBrowser现在支持Markdown格式(CommonMark和GitHub风格),以替代HTML。...弃用的模块   以下模块是Qt 5.14发行版的一部分,但已弃用,并考虑在后续的Qt发行版中删除: Qt Script Qt Quick Controls 1 Qt XmlPatterns 关于更多

    3.2K10

    Qt常用窗口部件

    从《C++.GUI.Qt.4编程(第二版)》上整理来的。 Qt提供4中类型的按钮:QPushButton、QToolButton、QCheckBox 和 QRadioButton。...如下图,QLabel是这些窗口部件中最重要的一个,它可以用来显示普通文本、图片和 HTML。QTextBrowser是一个只读类型的 QTextEdit 子类,它可以显示带格式的文本。...它优先用于处理大型格式化文本文档的 QLabel 中,与 QLable 不同的是,QTextBrowser 会在必要的时自动提供滚动条,同时还提供键盘和鼠标导航的广泛支持。...在编辑富文本的时候,它可以显示 Qt 富文本引擎支持的所有元素,QLineEdit 和 QTextEdit 都对剪切板提供完美支持。 ?...Qt提供一个通用消息框和一个能记住它所显示的消息内容的错误对话框。可以使用 QProcessDialog 或者 5 中的 QProcessBar 来对那些非常耗时的操作进行指示。

    1.9K30

    【QT】QT富文本

    富文本 QTextEdit支持富文本处理,即文档中可使用多种格式,如文字、图片、表格等。 PlainText为纯文本。...由此可类比, windows的记事本就是纯文本编辑器,word就是富文本编辑器。 文档的光标主要基于QTextCursor类,文档的框架主要基于QTextDocument类。...每种元素的格式有相应的format类表示:框架格式(QTextDFrameFormat)、文本块格式(QTextBlockFormat)、表格格式(QText)、列表格式(QTextListFormat...QTextEdit类就是一个富文本编辑器,在构建QTextEdit类对象时就已经构建了一个QTextDocument类对象和一个QTextCursor类对象。只需调用他们相应的操作即可。...; format.setBorderBrush(Qt::red);//边框颜色 format.setBorder(3);//边界宽度 //设置文档框架格式 rootFrame-

    2K10

    【QT】:QMainWindow 窗口

    但如果勾选了自动生成 ui 文件(Qt 已经给我们生成了一个 QMenuBar),那么上述代码就会引起内存泄漏 程序自己已经创建好了一个 QMenuBar,当设置新的 QMenuBar 进来时,就会导致旧的...但是实际上由于现在的计算机内存比较充裕,上述内存泄漏都还好,但还是要求代码写得更规范一些,所以采用下面这种写法。...在 Qt 中,并没有专门的菜单项类(QMenuBarItem),可以通过 QAction 类,抽象出公共的动作,如在菜单中添加菜单项。...状态栏 状态栏是应用程序中输出简要信息的区域。 一般位于主窗口的最底部,一个窗口中最多只能有一个状态栏。在 Qt 中,状态栏是通过 QStatusBar 类来实现的。...//exec()函数中,Qt接收并处理用户和系统的事件,并且将他们传递给适当的窗口部件。

    8210

    用PyQt5做图形界面(二)文本组件:QLabel、QLineEdit、QTextEdit

    而QTextEdit用来收集用户输入的一大段文字。 需求: 做一个BUG提交的界面,用户可以输入BUG的标题和描述,点击按钮后,获取用户填写的信息,并显示在终端里。...而QTextEdit功能较为复杂,支持纯文本模式,也支持富文本模式(即html、插入图片、设置不同的格式等)。我们今天只会用到toPlainText()来获取QTextEdit的文本。...整理如下: QLabel.setText(string) 设置标签的文本 QLineEdit.text() 获取单行文本框中的文字 QTextEdit.toPlainText() 获取多行文本框中的文字...从QLineEdit和QTextEdit中取出文字,并print出来。...总结: 在学习和使用pyqt5基本组件时,可以查阅pyqt5的官方类库(https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/index.html#module-PySide2

    2.7K10

    QLineEdit 输入验证(相关的设置)

    QLineEdit 還可以設定文字對齊方式,有置左對齊(Qt::AlignLeft)、置中對齊( Qt:: AlignCenter)與置右對齊( Qt:: AlignRight)等設定方式,也可以使用setReadOnly...QLineEdit 还可以设定文字对齐方式,有置左对齐(Qt::AlignLeft)、置中对齐( Qt:: AlignCenter)与置右对齐( Qt:: AlignRight)等设定方式,也可以使用...现在的实现是组合两个对象, 普 通情况下显示QLabel, 接收clicked 信号后显示QLineEdit 。但这样的实现很丑陋... 如 果可以设置QLineEdit 为透明背景就方便了。...   (2)多行文本框QTextEdit    QTextEdit显示多行文本内容,当文本内容超出控件显示范围时,可以显示水平和垂直滚动条。  ...通过设置acceptRichText属性,QTextEdit不仅可以显示文字,还可以显示HTML文档、图像、表格等元素。

    2.9K20

    Qt5实战第二篇:Qt5的基本控件与布局

    本文将详细介绍Qt5中常用的控件、布局管理器以及如何通过它们来创建用户界面。Qt5的基本控件Qt5提供了一系列内置的控件,这些控件可以用于创建各种用户界面元素。...QGridLayout:网格布局管理器,将控件排列在网格中。QStackedLayout:堆叠布局管理器,用于在同一位置堆叠多个控件,但每次只显示一个。...示例:创建包含基本控件和布局的Qt5应用程序下面将介绍如何使用Qt Creator和Qt5创建一个包含基本控件和布局的简单应用程序。...如果你更改了按钮的对象名称或使用了自定义的槽函数名称,请确保在connect()函数中正确指定。...通过本文的介绍和示例,你已经了解了Qt5中常用的基本控件和布局管理器,并学会了如何使用它们来创建简单的用户界面。接下来,我们会继续学习Qt5的高级控件和布局技巧,以及如何实现更复杂的用户界面交互。

    30110

    Python Qt GUI设计:QLineEdit和QTextEdit文本框类(基础篇—13)

    来看看两者的使用方法和区别吧~ 1、QLineEdit文本框类 QLineEdit类中的常用方法如下表所示: 定义输入掩码的字符,下表中列出了输入掩码的占位符和字面字符,并说明其如何控制数据输入。...掩码由掩码字符和分隔符字符串组成,后面可以跟一个分号和空白字符,空白字符在编辑后会从文本中删除的。...掩码示例如下表所示: QLineEdit类中的常用信号如下表所示: 通过一个简单案例了解QLineEdit文本框类的使用吧,效果如下所示: 示例中,演示了QLineEdit文本框类常用方法: 第...文本框类 QTextEdit类中的常用方法如下表所示: 通过一个简单案例了解QTextEdit文本框类的使用吧,效果如下所示: 示例中使用了一个QTextEdit控件:textEdit和两个QPushButton...同理,当单击btnPress2按钮后,将改变QTextEdit控件textEdit的显示内容为HTML文档。

    1.9K30

    Qt项目之高亮关键字Python编辑器实现

    之前大部分内容在写Qt一些小部件以及基础模块的用法,不成体系,大部分时候还是用什么找什么。随着对Qt的逐渐熟悉,应该做一些项目,这样可以在实际应用的过程中加深对程序的理解。...在Qt上的移植)去实现编辑器的各种功能。...Qt可以通过插件的方式开发虚拟键盘功能,这时候使用QScintilla开发的编辑器在使用虚拟键盘上会受到一些限制。...isReadOnly()) { QTextEdit::ExtraSelection selection; QColor lineColor = QColor(Qt::yellow...我们可以定义多种QTextCharFormat类型的规则,设置他们的颜色,指定他们的格式,再将他们分配给HighlightingRule对象,并将该对象附加到我们的规则列表中。

    2.5K10

    Python Qt GUI设计:菜单栏、工具栏和状态栏的使用方法(拓展篇—2)

    例如,建立:文件、编辑两个一级菜单栏目,如下所示: 可以在一级目录下建二级目录,在文件栏目下建立打开栏目,如下所示: 在Qt Designer的属性编辑器中可以对动作进行编辑,设置快捷键、图标等信息...1.2、 菜单栏类创建菜单栏 在QMainWindow对象的标题栏下方,水平的QMenuBar被保留显示QMenu对象。QMenu类提供了一个可以添加到菜单栏的小控件,也用于创建上下文菜单和弹出菜单。...2.1、Qt Creator创建工具栏 使用Qt Designer默认生成的主窗口中不显示工具栏,可以通过单击鼠标右键来添加工具栏,如下图所示: 此时的工具栏是空的,没有组件,如下所示: 可以在Qt...2.2、 工具栏类创建工具栏 QToolBar类中的常用方法如下表所示: 每当单击工具栏中的按钮时,都将发射actionTriggered信号。...QStatusBar类中的常用方法如下表所示: 通个示例了解QStatusBar状态栏类,示例效果如下所示: 在这个例子中,顶层窗口MainWindow 有一个菜单栏和一个QTextEdit 对象,

    7.2K31

    qt plaintextedit使用_qt获取lineedit的内容

    来看看两者的使用方法和区别吧~ 1、QLineEdit文本框类 QLineEdit类中的常用方法如下表所示: 定义输入掩码的字符,下表中列出了输入掩码的占位符和字面字符,并说明其如何控制数据输入。...掩码由掩码字符和分隔符字符串组成,后面可以跟一个分号和空白字符,空白字符在编辑后会从文本中删除的。...掩码示例如下表所示: QLineEdit类中的常用信号如下表所示: 通过一个简单案例了解QLineEdit文本框类的使用吧,效果如下所示: 示例中,演示了QLineEdit文本框类常用方法: 第...文本框类 QTextEdit类中的常用方法如下表所示: 通过一个简单案例了解QTextEdit文本框类的使用吧,效果如下所示: 示例中使用了一个QTextEdit控件:textEdit和两个QPushButton...同理,当单击btnPress2按钮后,将改变QTextEdit控件textEdit的显示内容为HTML文档。

    2.2K10

    c语言设计计算器-Qt学习笔记:设计一个计算器(二)

    背景   前面一节介绍了用Qt 设计计算器的界面,这节将总结一下如何让界面可以运行,如何设计计算器的功能部分。...编译的路径和编译后头文件的名称可以在项目属性页面Qt User 配置,如下。当然ui头文件也可以自己写,不用Qt ,但这样有点麻烦。   ...按钮的中的信号click(char)在界面设计时,已经绑定到了文本框的相应槽函数。   ...总结   本节介绍了如何去实现自定义的控件,核心运行的计算器类以及不同对象之间利用信号与槽函数进行通讯,体会了如何组织和构建一个qt程序。...其中我们不关注算法如何实现,只关注如何使这些代码组织起来,协调运行。至于如何处理用户的输入,随后有时间更新。 本文共 931 个字数,平均阅读时长 ≈ 3分钟

    81310

    【专业技术】Qt的新玩意

    但这些已经被Qt中的QAction实现了. QAction是UI无关的,可绑定到QPushButton, QCheckBox, QMenu,QToolButton,以及其他可视部件....因此QML中以及具有了复选框功能--利用QAction.仅在QML中定义--按钮外观,状态的过度,如何精确的响应鼠标,键盘,或触摸输入....独立封装外观对QWidget是很重要的,QML中的组件概念也保留了这个观点.如果生成一个完整的应用程序,需要由一致的外观风格,需要创建一系列可重用的具有期望外观的组件....更倾向于要求在一个包中定义,而与QGraphicWidget等价的QML项可能由跨多个QML文件的QML项组合而成,但还是可以加载到C++的单个QGraphicsObject 对象中....元素时,允许设计者使用绝对几何位置,绑定或描点(从QDeclarativeItem继承而来)定位其外边框,而不是使用布局或指定尺寸.如果适合指定尺寸就将其放置在QML文档中,让设计者知道如何更好的使用这个元素

    3K60

    qt tabwidget切换_标签怎么在新窗口打开

    为了防止这种情况可以在更改之前将窗口的QWidget.updateselebled属性设置为False,在更改完成时将属性设置为True,使部件再次接收绘制事件。...一.多页面切换组件 多页面的切换在我们日常的软件使用中是十分广泛的,有着很好的便捷性,下面一张图片展示了多页面的使用的便捷性 可以看到用鼠标点击不同的标题时会出现不同的页面内容 A.Qt中的多页面切换组件...QTabWidget Qt中为多页面切换的实现提供了一个专门的类QTabWidget,它可以实现能够在同一个窗口中自由切换不同页面的内容,并且是一个容器类型的组件,提供友好的页面切换方式,在QTabWidget...QTabWidget的使用方式–在Qt中的应用程序中创建QTabWidget的对象,将其他的QWiget对象加入该对象中(在QTabWidget对象中加入一个组件将生成一个新的页面,同时QTabWidget...的对象 2.将其他QWidget对象加入该对象中 实现过程 1.创建容器类的组件对象 2.将多个子组件在容器对象中布局 3.将容器对象加入QTabWidget中生成新的页面 Qt–多页面切换组件

    3.8K30

    QT从控件部分知识点整理

    QT中的工具栏和菜单栏 QMainWindow 菜单栏创建演示: 工具栏创建演示: 状态栏创建演示: 铆接部件(浮动窗口)创建演示: 中心部件创建演示: 资源文件添加 模态和非模态对话框 消息对话框...toolBar->addSeparator(); toolBar->addAction(OpenAction); //工具栏中添加控件 QPushButton*...:TopDockWidgetArea | Qt::BottomDockWidgetArea); 中心部件创建演示: //设置中心部件---只能有一个 QTextEdit* edit...=new QTextEdit(this); setCentralWidget(edit); ---- 资源文件添加 步骤1: 找到当前项目所在文件夹,将对应的资源放入当前项目所在的文件夹...="<<color.green()<< " b="<<color.blue(); ---- 文件对话框 //文件对话框---打开c盘文件夹 //父亲 标题 默认打开路径 过滤文件格式

    1.1K20

    Qt5-QtWidgets篇

    什么是QT QT是一个跨平台的C++图像用户界面应用程序框架 QT在1991年由奇趣科技开发 QT的优点 跨平台,几乎支持所有平台 接口简单,容易上手 一定程度上简化了内存回收机制 有很好的社区氛围 可以进行嵌入式开发...中的对象树 当创建的对象在堆区的时候,如果指定的付钱是QObject 派生下来的类或者子类 派生下来的类,可以不需要管理释放操作,会将对象放入对象树 一定程度上简化了内存回收机制 QT的窗口坐标系 笛卡尔坐标系...::TopDockWidgetArea | Qt::BottomDockWidgetArea); 中心部件 * 中心内容也只能有一个 + 文本窗口 QTextEdit + QTextEdit...utf-8 指定格式 QTextCodec QTextCodec *codec = QTextCodec::codecForName(“gbk”); ui->textEdit->setText(codec...该控件被按下时的状态 :disabled 该控件禁用时的状态 :first 该控件是第一个(列表中) :focus 该控件有输入焦点时 动画 QPropertyAnimation

    1.5K20
    领券