VS+QT斜体、粗体、下划线的实现

Qt设置的字体加粗、下划线、斜体、字号,字体 阅读详情
  1. 需要创建一个GUI项目,并在UI设计师里面,将菜单栏和任务栏设计好。由于VS+QT没有“go to slots”,所以需要手动添加槽函数。界面设计效果如下图所示:(中间为textEdit)

  1. 在类里面添加如下代码:(完整代码)

#include "FileEdit.h"

FileEdit::FileEdit(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    initUI();
}

void FileEdit::initUI()
{
    m_Bd = false;
    m_Ita = false;
    m_Udl = false;
    connect(ui.actioncuti, SIGNAL(triggered()), this, SLOT(Bd()));
    connect(ui.action_xieti, SIGNAL(triggered()), this, SLOT(Ita()));
    connect(ui.actionxiahuaxian, SIGNAL(triggered()), this, SLOT(Udl()));
    setCentralWidget(ui.textEdit);
    setWindowIcon(QIcon(":/picture/Resources/title.png"));
}

void FileEdit::Ita()
{
    QTextCharFormat fmt;
    fmt = ui.textEdit->currentCharFormat();
    if (m_Ita)
        m_Ita = false;
    else
        m_Ita = true;
    fmt.setFontItalic(m_Ita);
    ui.textEdit->mergeCurrentCharFormat(fmt);
}

void FileEdit::Udl()
{
    QTextCharFormat fmt;
    fmt = ui.textEdit->currentCharFormat();
    if (m_Udl)
    {
        m_Udl = false;
    }
    else
    {
        m_Udl = true;
    }
    fmt.setFontUnderline(m_Udl);
    ui.textEdit->mergeCurrentCharFormat(fmt);
}

void FileEdit::Bd()
{
    QTextCharFormat fmt;
    fmt = ui.textEdit->currentCharFormat();
    if (m_Bd)
    {
        m_Bd = false;
        fmt.setFontWeight(QFont::Normal);
    }
    else
    {
        m_Bd = true;
        fmt.setFontWeight(QFont::Bold);
    }    
    ui.textEdit->mergeCurrentCharFormat(fmt);
}
#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_FileEdit.h"

class FileEdit : public QMainWindow
{
    Q_OBJECT

public:
    FileEdit(QWidget *parent = Q_NULLPTR);

private:
    Ui::FileEditClass ui;

private:
    void initUI();
    bool m_Bd;
    bool m_Ita;
    bool m_Udl;

    private slots:
    void Bd();
    void Ita();
    void Udl();
};
  1. 在UI设计师里,将复制、粘贴、剪切三个功能通过“信号编辑器”进行槽函数设计,具体如下:

  1. 运行界面如下:

QT文本编辑器———第四弹(字体、字体颜色、加粗、倾斜、下划线、背景色) 在原版本基础上做了优化,增加了背景色的选项,工具栏添加了字体、字号、背景色。整体还是比较简单的,要注意的是QTextCursor这个类,用于获取光标所在行的文本。关注博主,继续更新哟~ 阅读详情

相关推荐

Qt学习笔记2014.7.17.14:04——设置文字加粗、倾斜、下划线、颜色

加粗 void TextEdit::SetFontBoldButton() { QTextCharFormat tcf; tcf.setFontWeight(BoldButton->isChecked() ? QFont::Bold : QFont::Normal); ui->textEdit->mergeCurrentCharFormat(tcf); } yushez

Pan 9754

12-Qt中使用QPainter绘制可以旋转角度的矩形

一、效果图 二、原理 因为QPainter只能绘制水平的矩形,而现在想要绘制旋转来一定角度的矩形,就需要使用QPainter的旋转功能了。 使用到的函数分别如下: painter.translate(x1, y1);//把参数(x1, y1)指定的点移动到绘图区的左上角(绘图原点),使得目标绘制坐标成为坐标系的原点(0,0) painter.rotate(angle); //以坐标原点为中...

Robert Zhang 7874

QT Designer vs 手写代码:一个字体样式Demo的两种实现,新手该选哪条路?

本文对比了QT Designer与手写代码在字体样式Demo实现中的优劣,分析了开发效率、代码可读性、维护成本及运行时性能差异。通过具体案例,帮助新手开发者根据项目需求选择最适合的QT GUI开发路径,提升开发效率与代码质量。

weixin_33724046的博客 407

Qt学习笔记之文本编辑器实现加粗、倾斜、下划线、字体、居中对齐、左对齐、右对齐

一、加粗、倾斜、下划线 在实现这些功能的时候,我们首先要知道,这三个功能是要施加在所选中的字体上的,如果没有这个过程,那么这三个功能将会对所有的字符进行上述处理。所以,第一部就是要实现设置光标的选区,使格式作用于选区内的字符。// 设置光标的选区,使格式作用于选区内的字符 void editorwindow::mergeFormat(QTextCharFormat fmt) {

kabuto_hui的博客 1万+

QT Designer拖控件 vs 手写代码:新手入门到底该选哪种方式?我的踩坑经验分享

本文探讨了QT开发中图形化拖拽设计与手写代码的优劣对比,适合新手入门参考。通过文本样式设置案例,分析了学习成本、开发效率和维护难度,建议根据项目阶段灵活选择。图形化设计适合快速原型,而手写代码在复杂项目中更具优势。

weixin_29015483的博客 218

PyQt5桌面开发实战:从环境搭建到文本编辑器完整项目

在Python桌面应用开发领域,GUI框架的选择直接影响项目的可维护性和用户体验。信号与槽机制作为事件驱动的核心原理,实现了界面与逻辑的优雅解耦,是构建复杂交互应用的技术基石。通过布局管理器实现自适应界面设计,结合Qt Designer可视化工具,能大幅提升开发效率与界面美观度。PyQt5作为Qt框架的Python绑定,继承了其工业级稳定性和跨平台能力,为开发者提供了从简单工具到复杂系统的完整解决方案。本文以PyQt5环境搭建和信号槽机制为核心,通过构建一个功能完整的文本编辑器项目,演示如何将界面设计与业务

java2000.net 394

【QT学习六】QTextEdit

QTextEdit是Qt中提供的一个用于文本编辑的控件,支持对富文本进行编辑和格式化,可以用于各种应用程序中,如文本编辑器、笔记应用、电子邮件客户端等。此外,QTextEdit还提供了一些其他的配置选项,例如设置最大字符数、设置是否允许用户输入HTML代码等。使用QTextEdit控件可以创建一个基本的文本编辑器,同时还可以与其他Qt控件一起使用,如QDockWidget(创建可停靠的文本编辑区域)和QTabWidget(创建多标签的文本编辑器)。

从此不归路 1万+

VC++ MFC电子时钟开发:从Windows API到GDI双缓冲实战

Windows桌面开发是理解操作系统底层运行机制的重要途径,其核心在于消息循环与图形设备接口(GDI)的运用。通过消息驱动模型,程序能够响应用户输入和系统事件,而GDI则负责图形绘制,实现界面可视化。在VC++环境中,MFC框架封装了Windows API,为开发者提供了面向对象的编程范式,极大提升了开发效率。结合定时器机制与双缓冲绘图技术,可以构建出高性能、无闪烁的实时应用程序,例如电子时钟这类经典练手项目。本文以电子时钟为例,深入剖析了MFC对话框创建、消息映射、GDI绘图及资源管理等关键技术,并针对界

weixin_34185512的博客 340

Qt界面布局管理详解已经自动生成信号和槽

在上一节,通过一个简单的应用程序,分析了Qt创建的 GUI 应用程序中各个文件的作用,剖析了可视化设计的UI文件是如何被转换为C++的类定义,并自动创建界面的。这些是使用 Qt Creator 可视化设计用户界面,并使各个部分融合起来运行的基本原理。 本节再以一个稍微复杂的例子来讲解设计 GUI 的常见功能,包括界面设计时布局的管理,以及程序里如何访问界面组件。 实例程序功能 创建一个...

weixin_38293453的博客 2391

手把手教你解决Kernel panic报错:init找不到的5种排查方法(附NFS挂载实战)

本文深入解析了Linux系统启动时出现“Kernel panic - not syncing: No working init found”报错的根本原因,并提供了五种系统性的排查方法。文章结合NFS挂载根文件系统的实战场景,详细阐述了从动态链接库依赖、内核引导参数、NFS权限配置、文件系统完整性到内核配置干扰的完整排查路径,帮助开发者快速定位并解决这一常见的系统启动故障。

weixin_29159995的博客 196

C#上位机与MES系统数据对接:从协议选型到安全传输的实战解析

本文详细解析了C#上位机与MES系统数据对接的全过程,从协议选型到安全传输的实战技巧。针对工业互联网场景下的数据对接挑战,提供了RESTful API、MQTT和OPC UA等协议的选型建议,并分享了健壮性设计、异常处理和安全传输的实用代码示例,帮助开发者高效实现数据上传与系统集成。

weixin_30566063的博客 106

06_多窗口文档编辑器(小钱版)[Qt开发][2012-03-07]

1) 引言 -> 模块01:程序简要说明         1. 程序名称:多窗口文档编辑器(Multiple Text Editor)         2. 运行环境:Window NT / 2000 / XP / VISTA / 7         3. 软件特色:能多窗口交互式编辑支持格式的文档。         4. 主要功能:编辑html、htm、pl

Neicole ~~ 学习旅程(大学) 7040

STM32F4系列HAL库配置定时器实验——输入捕获

STM32F4系列HAL库配置定时器实验——输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数模式, 图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为 上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器

azs0504的博客 9287

Qt 新手入门教程_2高频英文术语详解

本文系统梳理了Qt开发中的高频英文术语,涵盖UI设计、代码实现和项目管理的核心概念。主要内容包括: UI设计器常见术语 objectName作为控件唯一标识符,用于代码访问和样式表选择 基础属性:text(显示文字)、enabled(交互状态)、visible(可见性) 布局相关:geometry(位置尺寸)、size系列(尺寸限制)、tooltip(悬浮提示) QSS样式表关键术语 颜色控制:background系列(背景)、color(文字颜色) 边框样式:border简写属性及线型(solid/das

zhanghaha1314的博客 784

全国30米分辨率逐年植被覆盖度(FVC)数据集

植被覆盖度是描述地表植被的重要参数与生态环境的基本指标,在大气圈、土壤圈、水圈和生物圈中都占据着重要的地位,区域及全球范围的植被覆盖度估算对植被及相关领域的研究具有重要意义。分别对LANDSAT 5/7/8系列数据计算FVC,其中Landsat5 和Landsat 7NDVI计算利用 B4和B3波段,Landsat8 和Landsat9 NDVI计算利用 B5和B4波段。算法从当年所有观测数据中,以低云、低探测角度和最高NDVI值为标准,选择最佳的可用像元值,并进行换算。(3) FVC的计算。

地球资源数据云的官方博客 1809

六种光耦综合对比——《器件手册--光耦》

可控硅输出光耦(SCR Optocoupler)是一种特殊的光电耦合器,由红外发光二极管(LED)和双向可控硅(SCR)组成,用于实现输入和输出之间的电气隔离和信号传输。逻辑输出光耦是一种高效、可靠的数字信号隔离和电平转换器件,通过电气隔离和逻辑电平输出,确保了系统的安全性和信号的稳定性。固态继电器(可控硅输出,SSR)是一种无触点电子开关设备,利用可控硅(SCR或Triac)作为主要开关元件,通过光耦合器实现输入和输出之间的电气隔离。光耦作为一种成熟的电气隔离器件,在电子电路设计中具有重要的地位。

XU157303764的博客 1729

你可能不知道的 10 个 QTextEdit隐藏技能

本文深入介绍了 Qt 中 QTextEdit 控件的 10 个高级功能,包括文本变化信号处理、纯文本/HTML 转换、文本格式化、撤销/重做、Tab 宽度设置、查找功能、当前行高亮、行数限制、右键菜单定制和选中内容导出。每个功能都配有示例代码和效果截图,帮助开发者灵活运用这些特性。文末提供了完整的 Demo 下载链接,方便读者直接测试和使用这些功能。

专注于 Qt/C++ 应用开发和机器视觉领域的开源项目分享。期待与您共同进步! 925

⭐️VMwareWorkstation17.0虚拟机搭建WindowsXP虚拟机(完整安装步骤详细图文教程)

Windows XP是微软公司研发的计算机操作系统,于2001年10月25日正式发布。其名字中“XP”的意思来自英文中的“体验”(Experience)。Windows XP使用了Luna图形用户界面和双列开始菜单,提升了系统的安全性和工作性能,提供了WiFi支持,简化了软件的安装和运行,并增加了远程桌面功能。

Python老吕的博客 1万+

QT设置选中文字为斜体

QTextCharFormat fmt; fmt=ui->txtEdit->currentCharFormat(); fmt.setFontItalic(checked); ui->txtEdit->mergeCurrentCharFormat(fmt);

weixin_44317873的博客 1496

【系统架构设计师-2024下半年真题】案例分析-参考答案及部分详解(完整回忆版)

根据h中描述,为了保证高可靠性,有ping/echo,心跳机制两种策略,从资源利用率问为啥心跳更好。王工觉得使用ping/echo好,但李工觉得从系统资源利用率来说,使用心跳机制好 1、针对质量属性可以使用ping/echo和心跳模式实现,分别简述ping/echo和心跳的实现原理。 2、张工认为心跳策略比较适合,简述为什么?

数据知道的博客 1万+

超声波传感器(CHx01) 学习笔记 Ⅲ - I2C读写操作

CH-x01 通过 2 线 I2C 协议与主机处理器通信

nicole088的专栏 1740

Qt之图形(绘制文本)

简述 前面讲解了 Qt 图形的基本绘制,包括: 直线、弧线、矩形、椭圆、图片、多边形,以及其它一些高级用法,比如:渐变、转换等。 本节主要分享文本的绘制。主要通过 QPainter 的 darwText() 函数来实现,里面包含多个重载函数,其中,可以通过 QRect 来指定绘制的区域,也可以通过 QPoint 来指定绘制的起始点。...

weixin_34216107的博客 1865

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

QTextCharFormat:设置文本编辑框字体,字号,加粗,倾斜,下划线,颜色

QTextCharFormat介绍: QTextCharFormat类提供了QTextDocument中字符的格式化信息。 文档中文本的字符格式指定文本的可视属性,以及关于其在超文本文档中的角色的信息。 可以通过向setFont()函数提供字体来设置所使用的字体,并且可以调整其外观的各个方面以获得所需的效果。setFontFamily()和setFontPointSize()定义字体的族(例如时间)和打印大小;setFontWeight()和setFontItalic()提供对字体样式的控制。setFont

wzg31581230的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Qt qlabel 设置字体、大小、加粗等

QFont font ( “Microsoft YaHei”, 10, 75); //第一个属性是字体(微软雅黑),第二个是大小,第三个是加粗(权重是75) ui->label->setFont(font);常见权重 QFont::Light - 25 高亮 QFont::Normal - 50 正常 QFont::DemiBold - 63 半粗体

superbfly的专栏 13万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

QT样式表详解

了解QT样式表,看这一篇就够了。

ld_long的博客 4007

QT随笔

查询方法说明 按住F1键直接跳转到方法说明 通过快捷键查找方法参数 光标移至方法名中间任意位置,按F2即可跳转值方法定义项 去除窗体边框 调用QWidget中的方法,可以在widget.cpp里面添加this->setWindowFlags(Qt::FramelessWindowHint);即可 方法的参数问题 void setWindowFlags(Qt::WindowFlags typ...

u010294182的博客 404
上一篇: Qt添加菜单栏-代码添加
下一篇: QString的使用
create_right
博客等级 码龄7年 489粉丝 236原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值