首页
学习
活动
专区
工具
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

    QTQT富文本

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

    2K10

    用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.4K10

    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

    qt plaintextedit使用_qt获取lineedit内容

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

    2.2K10

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

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

    2.4K10

    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 对象,

    6.3K30

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

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

    1.8K30

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

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

    79810

    【专业技术】Qt新玩意

    这些已经被QtQAction实现了. 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.7K30

    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

    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盘文件夹 //父亲 标题 默认打开路径 过滤文件<em>格式</em>

    1.1K20

    Python Qt GUI设计:窗口布局管理方法【强化篇】(基础篇—6)

    (QFormLayout) 5、嵌套布局 5.1、在布局添加其他布局 5.2、在控件添加布局 5.3、QSplitter布局管理器 ---- 在Python Qt GUI设计:窗口布局管理方法【基础篇...】(基础篇—5)文章,聊到了如何使用Qt Designer进行窗口布局管理,其实在Qt Designer可以非常方便进行窗口布局管理设计,本篇博文在4种窗口布局方式基础上继续深入聊聊API函数~ 在...,若是进行比较复杂布局,就涉及布局嵌套了,推荐使用Qt Designer可视化管理工具来进行界面布局,可参见上篇博文。...Qt Designer嵌套布局层级效果 本文仅介绍API函数实现嵌套布局示例方法。...在QSplitter对象各子控件默认是横向布局,可以使用Qt.Vertical进行垂直布局。

    4.2K40

    QT5和C++ 11:Lambda是你朋友(翻译文)

    前言 自从Qt5发布以来,我一直在推迟对我一直在做一个项目升级到Qt5。即使是像这样版本,从Qt 4.7到Qt 5(没错,跳过了4.8),出于某种原因也不像暗示那么简单。...如果不使用Qt, 你可能根本就不在乎,但是Qt框架对象之间基本通讯机制是由信号(可以发出事件)和槽(事件处理程序)定义。...如果您不熟悉它们,可以通过搜索找到大量信息,简单回答是,它们基本上是内联、未命名函数。...一般格式为: [capture](parameters) { body }; 其中capture指定在函数声明作用域中哪些可见符号对lambda主体是可见,parameters是传递给lambda...由于我们槽函数非常简单,而且真正重要东西(我们正在设置字符串)是在lambda,所以甚至没有理由拥有它。

    1.7K10
    领券