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

inkz8wg9  于 2023-05-20  发布在  其他
关注(0)|答案(4)|浏览(278)

我在QT Designer中设计了一个label,需要从cpp实现中设置文本。这个管用但是,文本格式(大小和粗体)将被删除。
如何在保留ui文件中的格式的同时设置文本?
样品:

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

dpiehjr41#

你可以用文本编辑器打开你的ui文件来检查设置了什么测试。实际上,Qt使用HTML来格式化文本。你也可以设置stylesheet
要保存格式,您可以尝试以下操作:1.在ui 2中设置文本“%1”。保存更改前的文本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"));
}
w8ntj3qf

w8ntj3qf2#

我发现了真实的的问题。我在富文本编辑器中设置了文本格式。我需要做的是在QtWidget属性中设置标签的格式。当这一点被改变时,设置新文本时,所有内容都被保留。

oknrviil

oknrviil3#

对我来说有效的解决方案是在开始时(设计器或代码)将textFormat设置为PlainText,这样,无论何时您setText,它都会保持格式。

9o685dep

9o685dep4#

在Qt Creator中简单地应用对齐属性;简单的text-align: center不足以在现有Widget上设置新文本:
QLabel Properties

相关问题