QLabel中html标签的使用

来源:互联网 发布:mac中毒会有什么反应 编辑:程序博客网 时间:2024/06/05 06:16

abel中显示的字符串是支持HTML标签的。如果应用好的话会达到很多方便快捷的效果。

举几个例子如下:
(1) 作为标题:
用一个QLabel对象,使其字体加大、加粗、居中,使用如下三个标签即可。
new QLabel("<font size='+1'><b><p align='center'>标题</p></b></font>", this, "title")

(2) 加下划线:
使用<u></u>即可实现。

(3) 给局部加样式
还可以对text的部分内容添加标签,以使个别内容使用不同字体、样式,并且不影响整体字体。如,给字加颜色、大小、字体等。
<font color='#5500ff' size='+1' face='Sans'>被设置了字体</font>

(4) 画横线
使用<hr>即可实现。

完整代码如下:

[cpp] view plaincopyprint?
  1. #include <qlayout.h>   
  2. #include <qframe.h>   
  3. #include <qlabel.h>   
  4. #include <qfont.h>   
  5. QVBoxLayout *vBox = new QVBoxLayout(this);  
  6. vBox->addWidget(new QLabel("<font size='+1'><b><p align='center'>标题</p></b></font>"this));//标题  
  7. vBox->addWidget(new QLabel("<hr>"this"hr"));//在标题下面画一道横线  
  8. /* 
  9. //或是用下面的方法 
  10. QFrame *lbHr = new QFrame( this, "line4" ); 
  11. lbHr->setGeometry( QRect( 1, 20, width()-2, 16 ) ); 
  12. //lbHr->setPaletteBackgroundColor( QColor( 222, 199, 241 ) ); 
  13. lbHr->setFrameShape( QFrame::HLine ); 
  14. lbHr->setFrameShadow( QFrame::Sunken ); 
  15. lbHr->setFrameShape( QFrame::HLine ); 
  16. vBox->addWidget(lbHr);//横线 
  17. */  
  18. vBox->addStretch(1);  
  19. vBox->addWidget(new QLabel("<u>带下划线的label</u>"this));  
  20. QLabel *label = new QLabel("设置字体:<font color='#5500ff' size='+1' face='Sans'>被设置了字体</font>"this);  
  21. //字体加粗,被设置字体部分同样加粗   
  22. QFont font = label->font();  
  23. font.setBold(true);  
  24. label->setFont(font);  
  25. vBox->addWidget(label);  
  26. QLabel *label2 = new QLabel("设置字体未加粗:<font color='#5500ff' size='+1' face='Sans'>被设置了字体</font>"this);  
  27. vBox->addWidget(label2);  



需要注意的是,QPushButton不支持HTML标签。如果想使用特殊效果的字体就用QLabel代替吧,通过
setFrameShape();
setFrameShadow();
mouseReleaseEvent(QMouseEvent *e);
mousePressEvent(QMouseEvent *e);
等方法就能实现。

原创粉丝点击