QT | 设置字体颜色

1、设置QLabel颜色

    #include <Qpalette>
    
    QPalette red;
    red.setColor(QPalette::WindowText,Qt::red);
    ui->SendIP->setPalette(red); // 设置QLabel的颜色

2、设置QTextEdit颜色–适用于常量

代码

    // 设置QTextEdit的颜色
	ui->StatusWindow->append("<font color=\"#FF0000\">红色字体</font> ");
	ui->StatusWindow->append("<font color=\"#00FF00\">绿色字体</font> ");
	ui->StatusWindow->append("<font color=\"#0000FF\">蓝色字体</font> ");
    // QTextEdit正常的输出
    ui->StatusWindow->append(" ** 服务器IP与端口号为:" + ServerIP +"," + QString::number(ServerPort));
    ui->StatusWindow->append(" ** 下位机IP与端口号为:" + LowerComputerIP +"," + QString::number(LowerComputerPort));
    // 总结
    // (1)QTextEdit与QPlainTextEdit,QTextEdit更能很好的设置颜色,而且其他的也好兼容。
    // (2)这种"<font color=\"#FF0000\">红色字体</font> "富文本格式,显示的是常量

运行效果

在这里插入图片描述

3、设置QTextEdit颜色–适用于变量

代码1 QTextEdit,设置某行颜色

    auto CurrentColor = ui->StatusWindow->textColor(); // 保存当前QTextEdit的颜色

    ui->StatusWindow->setTextColor(Qt::red); // 设置下一行颜色
    QString str = u8"This a test line"; // 下一行内容
    ui->StatusWindow->append(str); // 显示下一行

    ui->StatusWindow->setTextColor(CurrentColor); // 将下下一行内容颜色恢复默认

     // 总结:
     // (1)直接设置某一行的颜色
     // (2)这种方法的本质,是将整个QTextEdit的颜色都改变,但由于只改变一行后就恢复默认,表现为只有一行的颜色改变了

运行效果1

在这里插入图片描述

代码2 QTextEdit中,某行显示当前时间,并设置颜色

	timeCurrent = QDateTime::currentDateTime();
	time = timeCurrent.toString("[hh:mm:ss]"); // 获取当前时间,转换为特定形式字符串

	TextCurrentColor = ui->UDPDataSend->textColor(); // 保存当前QTextEdit的颜色
	ui->UDPDataSend->setTextColor(Qt::darkGray); // 设置下一行颜色
	ui->UDPDataSend->append(time); // 显示下一行
	ui->UDPDataSend->setTextColor(TextCurrentColor); // 将下下一行内容颜色恢复默认

运行效果2

在这里插入图片描述

代码3 QTextEdit中,一段文字显示不同颜色

代码思路:设一个颜色,写一段文字,设一个颜色,写一段文字;
建议使用这种思路,非常简单,比富文本简易多了,不需要在那复制来复制去。

	timeCurrent = QDateTime::currentDateTime();
	time = timeCurrent.toString("[hh:mm:ss]"); // 获取当前时间,转换为特定形式字符串

	ui->UDPDataSend->setTextColor(Qt::darkRed); // 设置下一行颜色
	ui->UDPDataSend->append(time); // 显示下一行

	ui->UDPDataSend->setTextColor(Qt::darkGreen);
	ui->UDPDataSend->append("[To 服务器]:水听器心跳 ");

	ui->UDPDataSend->setTextColor(Qt::darkBlue); // 设置下一行颜色
	ui->UDPDataSend->append(QString(data.toHex()));

	ui->UDPDataSend->setTextColor(Qt::black); // 设置下一行颜色
	ui->UDPDataSend->append("tcpflag为" + QString::number(order3.tcpFlag));
	ui->UDPDataSend->append("完成唤醒标志位为" + QString::number(order3.wakeupFlag));
	ui->UDPDataSend->append("采样率索引为" + QString::number(order3.fs));
	ui->UDPDataSend->append("增益索引为" + QString::number(order3.gain));
	ui->UDPDataSend->append("接收信号超时为" + QString::number(order3.timeout));
	ui->UDPDataSend->append(" ");

运行效果2

在这里插入图片描述

附录 QT内置颜色

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 14
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
QT设置文字颜色可以使用以下几种方法: 1. 使用QLabel组件设置颜色:首先,创建一个QPalette对象,然后使用setColor()方法设置需要改变的颜色,例如设置文本颜色为红色。接下来,使用setPalette()方法将设置好的QPalette对象应用到QLabel组件上。 2. 使用QTextEdit组件设置颜色:通过使用富文本格式,可以在QTextEdit中设置不同行的颜色。使用append()方法添加需要显示的内容,并使用<font color="#FF0000">...</font>的标签将文本的颜色设置为红色。 3. 使用QTextEdit组件设置颜色,适用于变量:使用setTextColor()方法设置下一行的颜色,然后使用append()方法添加需要显示的内容。最后,使用setTextColor()方法将颜色恢复为默认值,以便下一行的内容显示为默认颜色。 4. 使用QColorDialog对话框设置颜色:在需要设置颜色的函数中,使用QColorDialog.getColor()方法弹出一个颜色选择对话框,选择所需的颜色。然后,使用setForeground()方法设置选定颜色的文本格式,最后使用mergeCurrentCharFormat()方法将设置应用到当前文本。 总结来说,可以根据需要选择合适的方法来设置QT中的文字颜色。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [QT | 设置字体颜色](https://blog.csdn.net/qq_43466146/article/details/123068735)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [qt 更改文字样式和颜色](https://blog.csdn.net/weixin_52609923/article/details/120500023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值