QLabel设置超链接并打开网页

在Qt开发过程中,项目中有时需要打开超链接,例如:打开购买网页,技术支持网页,帮助等网页,这里QT的界面显示一个超链接,当用户点击这个超链接时,弹出相应url的网页,本篇介绍使用Qlabel显示超链接,点击打开url网页。

首先把网址及要显示的内容设置到QLabel的setText()里,然后再把打开超链接设为true, setOpenExternalLinks(true)
例如:

ui->labelLink->setOpenExternalLinks(true);
ui->labelLink->setText(QString("<a href=\"https://www.baidu.com\">https://www.baidu.com</a>"));

这个就是默认的带下划线,蓝色字体的超链接标识显示。

当用户点击蓝色字体区域时,会自动打开百度网页。

因为这是默认的,所以自带下划线,如果不想要下划线可以吗,这个时候需要设置text-decoration为none,代码如下:

ui->labelLink2->setText(QString("<a style='text-decoration:none' href=\"https://www.baidu.com\">https://www.baidu.com</a>"));

运行效果如下:

从上面可以看出,第一个超链接已经去掉下划线了。

如果想修改颜色呢:设置颜色风格即可style='color:#FF0000'

ui->labelLink3->setText(QString("<a style='color:#FF0000' href=\"https://www.baidu.com\">https://www.baidu.com</a>"));

运行效果:

第3个超链接,颜色设置为红色。

既想改变颜色,又要去掉下划线呢:style='color:#00FF00;text-decoration:none'

ui->labelLink4->setText(QString("<a style='color:#00FF00;text-decoration:none' href=\"https://www.baidu.com\">https://www.baidu.com</a>"));

运行效果:

完整的项目代码如下:

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

QT_BEGIN_NAMESPACE
namespace Ui { class Dialog; }
QT_END_NAMESPACE

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = nullptr);
    ~Dialog();
    void initView();

private:
    Ui::Dialog *ui;
};
#endif // DIALOG_H
#include "dialog.h"
#include "ui_dialog.h"
#include <QDebug>

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::Dialog)
{
    ui->setupUi(this);
    initView();
}

Dialog::~Dialog()
{
    delete ui;
}

void Dialog::initView()
{
    ui->labelLink->setOpenExternalLinks(true);
    ui->labelLink2->setOpenExternalLinks(true);
    ui->labelLink3->setOpenExternalLinks(true);
    ui->labelLink4->setOpenExternalLinks(true);

    ui->labelLink->setText(QString("<a href=\"https://www.baidu.com\">https://www.baidu.com</a>"));
    //去掉下划线
    ui->labelLink2->setText(QString("<a style='text-decoration:none' href=\"https://www.baidu.com\">https://www.baidu.com</a>"));
    //设置文字颜色FF0000
    ui->labelLink3->setText(QString("<a style='color:#FF0000' href=\"https://www.baidu.com\">https://www.baidu.com</a>"));
    QString str="<style> a:hover{color:#FF0000;text-decoration:none}</style><a style='color: blue;'href =\"https://www.baidu.com\">AAAAA</a>";
    //设置文字颜色为00FF00,去掉下划线
    ui->labelLink4->setText(QString("<a style='color:#00FF00;text-decoration:none' href=\"https://www.baidu.com\">https://www.baidu.com</a>"));

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值