标签QLabel

常用方法

文本:

// 获取和设置显示的文本
QString text() const;
void setText(const QString &text);

对齐方式:

Qt::Alignment alignment() const;
void setAlignment(Qt::Alignment);

Qt::Alignment的常用取值如下:

  • Qt::AlignLeft 水平方向-左对齐

  • Qt::AlignRight 水平方向-右对齐

  • Qt::AlignHCenter 水平方向-居中对齐

  • Qt::AlignTop 垂直方向-上对齐

  • Qt::AlignBottom 垂直方向-下对齐

  • Qt::AlignVCenter 垂直方向-居中对齐

  • Qt::AlignCenterAlignVCenter | AlignHCenter) 垂直方向和水平方向-居中对齐

上面的每一个宏,都代表 16 进制中的一位,可以进行或(|)操作,来同时设置多个对齐方式

换行:

换行使能时,标签在跟随窗口缩放的过程中,如果文字可以显示在下一行,就会自动换行

// 获取和设置文本是否允许换行
bool wordWrap() const; // 判断是否允许换行 
void setWordWrap(bool on); // 设置是否允许换行 

图像:

可以设置和获取标签上显示的图像

// 获取和设置显示的图像
const QPixmap *pixmap() const; 
void setPixmap(const QPixmap &pixmap);

提示信息:

设置后获得如下效果:

//获取和设置提示信息
 QString toolTip() const
 void setToolTip(const QString &)

设置背景图片

三种qss方法

  • border-image:url(:/11.jpg)  //使用border-image;背景图会随着QLabel的尺寸自动缩放,尺寸变得和QLabel的尺寸一样,但是可能会失真
  • background-image:url(:/11.jpg)  //使用background-image;背景图不会随着QLabel的尺寸自动缩放,需要美工提供的图片和QLabel的尺寸一样
  • image:url(:/11.jpg)  //使用image;背景图会随着QLabel的尺寸自动缩放,但是缩放的过程中图片始终保持原来的纵横比

显示gif动图

//获取和设置gif动画
QMovie *QLabel::movie() const
[slot] void QLabel::setMovie(QMovie *movie)

示例

需要注意的是需要调用QMovie的Start()方法后,gif图片才会被显示出来gif图片也可以缩放,调用QMovie的setScaleSize()方法

QLabel * lbl = new QLabel("你好", this);
lbl -> setGeometry(10, 10, 300, 300);
QMovie * mov = new QMovie(":/333.gif");
lbl -> setMovie(mov);
//缩放,也可以不缩放
mov -> setScaledSize(lbl -> size());
//还需要调用start才能显示出来
mov -> start();

 文本格式

//获取和设置label的文本格式 
Qt::TextFormat textFormat() const
void setTextFormat(Qt::TextFormat)

TextFormat有三种取值:

  • Qt::PlainText,纯文本显示
  • Qt::RichText,如果文本内容是html,则可以解析并显示html文本
  • Qt::AutoText,根据文本自动确定
  • Qt::MarkdownText,如果文本内容是markdown格式,那么可以自动解析并显示

比如QLabel的文本是html,那么就会自动解析html并显示

//文本是html,且<a></a>标签表示链接,<i></i>标签表示文字倾斜
QLabel* lbl=new QLabel(R"(<a href="www.baidu.com">www.baidu.com</a><i> 哈哈</i>)",this);
lbl->setTextFormat(Qt::RichText);

效果如下:

自动显示为链接,而且鼠标悬浮上去鼠标样式也会改变,且文字也倾斜了

 

信号

QLabel自己的两个信号,就是下面的 链接被点击 和 鼠标悬浮到链接  信号

如果文本格式是富文本,且文本中有<a></a>链接标签,

  • 点击这个链接:发射链接点击信号
  • 鼠标悬浮到链接上面和离开链接:发送链接悬浮信号

void linkActivated(const QString &link)
void linkHovered(const QString &link)

文本交互属性

//获取和设置文本交互属性
Qt::TextInteractionFlags textInteractionFlags() const
void setTextInteractionFlags(Qt::TextInteractionFlags flags)

flags几种常见的取值:

  • Qt::TextSelectableByMouse,QLabel中的文本可以被鼠标选中
  • Qt::TextEditable,QLabel中的文本可以被编辑

举例:将QLabel设置为可选择且可编辑

lbl->setTextInteractionFlags(Qt::TextSelectableByMouse|Qt::TextEditable);

设置选中的文本

当文本交互属性增加可选择后,那么就可以设置被选中的文本

//start开始length个字符被选中
void QLabel::setSelection(int start, int length)

获取选中的文本

当文本交互属性增加可选择后,那么就可以获取到被选中的文本

//返回值:选中的文本
QString selectedText() const

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值