Qt, Text Edit 和 Plain Text Edit关于调整字体样式的问题

news2025/1/19 23:22:16
问题: 在编写小案例的过程中需要使用一个文本容器用于显示文本效果, 因为涉及文本字体的 加粗, 倾斜, 下划线, 以及颜色效果, 这里使用了 Text Edit 组件, 但是使用后发现容器中的文本无法实现同时设置 加粗 倾斜 下划线的情况, 且单独设置时只有 下划线 有效果, 加粗 倾斜 均无效, 而文本颜色切换显示正常.

如下, 在同时勾选 加粗 倾斜 下划线时, 仅有下划线生效
在这里插入图片描述
如下, 单独设置三者时, 仅有下划线有效
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解决过程:

在排除完代码逻辑问题后, 选择使用 Plain Text Edit 替换 Text Edit 进行测试, 结果发现 Plain Text Edit 可以同时设置 加粗 倾斜 下划线, 且单独设置三者时也是有效的

效果如下
在这里插入图片描述

总结:

如果有对文本同时设置 加粗 倾斜 下划线 或者单独设置 加粗 倾斜 需求的话可以使用 Plain Text Edit , 具体的原因暂时不知道, 记住就好了

案例代码分享如下

dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

QT_BEGIN_NAMESPACE
namespace Ui { class Dialog; }
QT_END_NAMESPACE

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = nullptr);
    ~Dialog();

private:
    Ui::Dialog *ui;

private slots:
    void on_clearBtn_clicked();
    void do_change_color();
    void do_change_font();
};
#endif // DIALOG_H

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"
#include <QDebug>

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::Dialog)
{
    ui->setupUi(this);
    this->setFixedSize(600, 400);

    connect(ui->redBtn, SIGNAL(clicked(bool)), this, SLOT(do_change_color()));
    connect(ui->blueBtn, SIGNAL(clicked(bool)), this, SLOT(do_change_color()));
    connect(ui->blackBtn, SIGNAL(clicked(bool)), this, SLOT(do_change_color()));

    connect(ui->underlineBox, SIGNAL(clicked(bool)), this, SLOT(do_change_font()));
    connect(ui->boldBox, SIGNAL(clicked(bool)), this, SLOT(do_change_font()));
    connect(ui->italicBox, SIGNAL(clicked(bool)), this, SLOT(do_change_font()));
}

Dialog::~Dialog()
{
    delete ui;
}


void Dialog::on_clearBtn_clicked()
{
    ui->textEdit->clear();
}

void Dialog::do_change_color()
{
    QPalette palette = ui->textEdit->palette();

    if(ui->redBtn->isChecked()){
        palette.setColor(QPalette::Text, Qt::red);
    }else if(ui->blueBtn->isChecked()){
        palette.setColor(QPalette::Text, Qt::blue);
    }else if(ui->blackBtn->isChecked()){
        palette.setColor(QPalette::Text, Qt::black);
    }

    ui->textEdit->setPalette(palette);

}

void Dialog::do_change_font()
{
    QFont font = ui->textEdit->font();
    font.setUnderline(ui->underlineBox->isChecked());
    font.setItalic(ui->italicBox->isChecked());
    font.setBold(ui->boldBox->isChecked());
    ui->textEdit->setFont(font);
}

main.cpp

#include "dialog.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;
    w.show();
    return a.exec();
}

gitee仓库地址: https://gitee.com/ml_coding/qt.git

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/575842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++模板(详解)

非类型模板参数 模板参数可分为类型形参和非类型形参。类型形参&#xff1a; 出现在模板参数列表中&#xff0c;跟在class或typename关键字之后的参数类型名称。非类型形参&#xff1a; 用一个常量作为类&#xff08;函数&#xff09;模板的一个参数&#xff0c;在类&#xff…

字节跳动测试岗面试挂在二面,我复盘总结了失败原因,决定再战一次

先说下我基本情况&#xff0c;本科不是计算机专业&#xff0c;现在是学通信&#xff0c;然后做图像处理&#xff0c;可能面试官看我不是科班出身没有问太多计算机相关的问题&#xff0c;因为第一次找工作&#xff0c;字节的游戏专场又是最早开始的&#xff0c;就投递了&#xf…

hystart++ 出炉

周三早上同事发我一个 rfc 9406 链接&#xff0c;microsoft hystart 标准化了&#xff0c;此前只是一个 draft。 说说我的看法。 信收敛不信测量&#xff0c;tcp 是端到端高熵体&#xff0c;对网络一无所知&#xff0c;过度信任测量则无法消除长尾&#xff0c;且可能劣化 p99…

Metasploit入门教程(非常详细)从零基础入门到精通,看完这一篇就够了!

通过本篇文章&#xff0c;我们将会学习以下内容&#xff1a; 1、在Windows上安装Metasploit 2、在Linux和MacOS上安装Metasploit 3、在Kali Linux中使用 Metasploit 4、升级Kali Linux 5、使用虚拟化软件构建渗透测试实验环境 6、配置SSH连接 7、使用SSH连接Kali 8、配…

【牛客刷题专栏】0x32:JZ45 把数组排成最小的数(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转)&#xff0c;它登陆后会保存刷题记录进度&#xff0c;重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏&#xff1a;个人CSDN牛客刷题专栏。 题目来自&#xff1a;牛客/题库 / 在线编程 / 剑指offer&#xff1a; 目录 前言问…

【算法】LFU及其优化

文章目录 什么是LFU&#xff1f;设计思路代码实现&#xff08;基础版本&#xff09;参考论文代码实现&#xff08;优化版本&#xff09;区别 什么是LFU&#xff1f; LRU及其实现 上文讲解了LRU&#xff0c;他是一个基于最近是否被访问来做缓存淘汰的策略。 那么今天介绍一个新…

Postman的简单使用:

1. Postman 1.1 背景 当前主流的开发模式为&#xff1a;前后端分离开发。 前端人员开发前端工程&#xff0c;后端人员开发后端工程&#xff0c;只需要依据这份接口文档即可。在后端开发过程中每开发完一个功能&#xff0c;就需要对这个功能接口进行测试&#xff0c;由于现在是…

图灵完备游戏:信号计数 解法记录

使用1个全加器 2个半加器完成。这关的思想主旨在于如何把输出4&#xff0c;输出2&#xff0c;输出1的情况统一在一根导线上。 首先用一个全加器来完成输入2-4这三个引脚的计数&#xff0c;因为全加器输出范围二进制是00 - 11&#xff0c;而输入正好有两个引脚数位是2和1&…

linux周六串讲

esc. //粘贴复制上一条命令的参数 cat /etc/resolv.conf //查看DNS地址 route -n //查看网关 hostname //临时修改主机名 hostnamectl set-hostname 名称 //永久修改主机名 ssh root192.168.10.233 //用windows远程的格式&#xff0c;在CMD窗口输入这个命令 …

MYSQL数据库测评及整改

1、查询数据库版本&#xff1a;select version(); 2、查询已安装的插件&#xff1a;show plugins; 3、查询插件安装的位置&#xff1a; show variables like "%plugin_dir%"; 4、查询用户&#xff1a;选择数据库&#xff1a; select host,user,plugin from user; 5、…

Read View 数据快照,在MVCC里是如何工作的?

Read View 数据快照&#xff0c;在MVCC里是如何工作的&#xff1f; Read View 有四个重要的字段&#xff1a; ● m_ids &#xff1a;指的是在创建 Read View 时&#xff0c;当前数据库中「活跃事务」的事务 id 列表&#xff0c;注意是一个列表&#xff0c;“活跃事务”指的就…

Seata术语

1.什么是Seata Seata是一款开源的分布式事务解决方案&#xff0c;致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 官网 2.Seata能干嘛 一个典型的分布式事务过程 分布式事务处理过程的一ID三组件模型&#xff1a; Transaction ID XID 全局唯一的事务ID三组…

WSL2编译安卓8.1源码,直接运行模拟器

目录 WSL2编译安卓8.1源码&#xff0c;直接运行模拟器WSL2下载安装移动到非系统盘下载和编译Android8直接运行emulator修改模拟器配置源码导入Android Studio并进行调试断点调试总结 WSL2编译安卓8.1源码&#xff0c;直接运行模拟器 学习Android Framework开发&#xff0c;需要…

零基础CTF入门指南+工具

ctf入门指南 CTF工具包获取地址&#xff1a;http://www.ctftools.com/ 如何入门&#xff1f;如何组队&#xff1f; capture the flag 夺旗比赛 类型&#xff1a; Web 密码学 pwn 程序的逻辑分析&#xff0c;漏洞利用windows、linux、小型机等 misc 杂项&#xff0c;隐写&…

2023年电工杯选题人数发布

该选题人数&#xff0c;主要基于根据各个平台开赛后24小时各项数据统计&#xff0c;进行评估&#xff08;方法见注释&#xff09;&#xff0c;最终得出2023年认证杯二阶段选题人数&#xff0c;大致为 题号选题人数A97B431 注释&#xff1a;选题人数来源&#xff1a;源自各个平台…

Python案例:获取music榜单数据,保存自己的music库

目录 前言本次知识点:开发环境:代码展示括展小知识尾语 &#x1f49d; 前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 本次知识点: 爬虫基本流程 requests的使用 正则表达式的使用 开发环境: 解释器: python 3.8 编辑器: pycharm 2022.3 专业版 第三方模块使用 r…

如何自学网络安全 才不会成为脚本小子?

前言&#xff1a;我们来看看怎么学才不会成为脚本小子 目录&#xff1a; 一&#xff0c;怎么入门&#xff1f; 1、Web 安全相关概念&#xff08;2 周&#xff09; 了解网络安全相关法律法规 熟悉基本概念&#xff08;SQL 注入、上传、XSS、CSRF、一句话木马等&#xff09;。…

基于three.js实现的点击盒子消除游戏

一.项目背景 大学时期参加了机器人协会&#xff0c;并有幸成为了视觉组组长&#xff0c;所以在新一届社团招新上做了一款趣味小游戏来吸引新生的眼球&#xff0c;让大家知道协会的视觉组。 二.代码展示 <!DOCTYPE html> <html> <head> <style> body…

chatgpt赋能python:Python文件名字替换-优化SEO的必备技巧

Python文件名字替换-优化SEO的必备技巧 作为一名有10年Python编程经验的工程师&#xff0c;我深知文件名字替换在优化搜索引擎排名中占有重要的地位。本文将介绍如何使用Python进行文件名字替换以优化SEO&#xff0c;旨在为广大编程初学者提供有益的参考和指导。 什么是文件名…

零基础如何学习 Web 安全?

Web安全不仅是互联网的核心&#xff0c;而且还是云计算和移动互联网的最佳载体。对于信息安全从业者而言&#xff0c;Web安全是一个非常重要的研究课题之一。 Web应用是指采用B/S架构、通过HTTP/HTTPS协议提供服务的统称。随着互联网的广泛使用&#xff0c;社交网络、聊天工具…