QT | 设置字体颜色

1、设置QLabel颜色

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

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

代码

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

运行效果

QT | 设置字体颜色_第1张图片

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

QT | 设置字体颜色_第2张图片

代码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

QT | 设置字体颜色_第3张图片

代码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 | 设置字体颜色_第4张图片

附录 QT内置颜色

QT | 设置字体颜色_第5张图片
QT | 设置字体颜色_第6张图片
QT | 设置字体颜色_第7张图片

你可能感兴趣的:(qt,qt,ui,开发语言)