QT 标签 setText() 同时保留文本格式

QT label setText() while preserving text formatting

本文关键字:保留 文本 格式 标签 setText QT      更新时间:2023-10-16

我在QT设计器中设计了一个标签,需要从cpp实现中设置文本。这行得通。但是,文本表单垫(大小和粗体(正在被删除。

如何在保留 ui 文件中完成的格式的同时设置文本?

样本:

ui->label_version->setText(QString::fromStdString("1.0.0"));

您可以使用文本编辑器打开ui文件以检查设置的测试。实际上,Qt使用HTML来格式化文本。此外,您可以设置样式表。

要保存格式,您可以尝试以下操作: 1. 在ui中设置文本"%1" 2. 保存更改前的文本 3.使用保存的文本+.arg设置新文本

Constructor()
{
this->m_savedText = m_ui->myLabel->text();
m_ui->myLabel->setText(this->m_savedText.arg("Default text"));
}
handler()
{
m_ui->myLabel->setText(this->m_savedText.arg("New text"));
}

我发现了真正的问题。我已经在富文本编辑器中设置了文本格式。我需要做的是使用 QtWidget 属性设置标签的格式。更改后,设置新文本时会保留所有内容。

对我有用的解决方案是在开头(设计器或使用代码(将textFormat设置为纯文本,这样,每当您设置文本时,它都会保持格式。

只需在Qt Creator中应用对齐属性;在现有控件上设置新文本时,简单的text-align: center是不够的:

QLabel 属性