html标签在Qt中不起作用

时间:2015-03-15 16:49:52

标签: html c++ qt

我正在学习如何在Qt编程中使用html和css,我想用这个改变pushButton的文本:

ui->pushButton->setText("<b>chert</b>");

但它无法正常工作。 html标签对它没有影响。 我怎样才能让它发挥作用?!

谢谢:)

1 个答案:

答案 0 :(得分:2)

作为一种解决方法,您可以使用标签或文本文档来打印所需的文本。您应该将其绘制到像素图并使用按钮上的像素图:

QTextDocument doc;
doc.setHtml("<b>chert</b>");
doc.setTextWidth(doc.size().width());

QPixmap pixmap(doc.size().width(), doc.size().height());
pixmap.fill( Qt::transparent );
QPainter painter(&pixmap);
doc.drawContents(&painter);

button->setIconSize(pixmap.size());
button->setIcon(pixmap);

另一种实现此目的的方法是从QPushButton派生并通过QPainter中的paintEvent自行绘制文字。您可以找到富文本按钮实现here

您也可以使用libqxt中的QxtPushButton类。 QxtPushButton小部件是一个扩展的QPushButton,具有旋转和富文本支持。