Qt实现Label超链接效果

写在前言:要么使用自定义槽函数实现,要么就是通过设置label中setOpenExternalLinks中方法实现.

直接贴代码吧:



Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);


    ui->OpenUrl->setText("百度");
    ui->OpenUrl->setFixedSize(40,40);
    connect(ui->OpenUrl,SIGNAL(linkActivated(QString)),this,SLOT(openUrl(QString)));  //在.h里面定义一个槽private slots: void openUrl(QString url);


    QLabel  *openfilelabel = new QLabel(this);
    openfilelabel->setOpenExternalLinks(true);
    openfilelabel->setText("新浪");






}


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


void Widget::openUrl(QString url)
{
    QDesktopServices::openUrl(QUrl(url));
}


这是两种实现方法混合体,备注:void Widget::openUrl(QString url)这个的声明机制为槽函数.

你可能感兴趣的:(QT开发)