我正在学习如何在Qt编程中使用html和css,我想用这个改变pushButton的文本:
ui->pushButton->setText("<b>chert</b>");
但它无法正常工作。 html标签对它没有影响。 我怎样才能让它发挥作用?!
谢谢:)
答案 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,具有旋转和富文本支持。