Qt中實現點擊一個label,跳轉到打開一個瀏覽器鏈接


配置模塊

首先需要在.pro配置文件中添加QT += network

重寫自定義Label

.h文件

class MyClickLabel : public QLabel
{

    Q_OBJECT
public:
    explicit MyClickLabel(QWidget *parent = 0);	// 構造函數聲明
protected:
    virtual void mouseReleaseEvent(QMouseEvent * ev);  // 聲明鼠標左鍵點擊事件
signals:
    void clicked(void); // 聲明鼠標左擊中信號

};

.cpp文件

MyClickLabel::MyClickLabel(QWidget *parent):QLabel(parent) { }

// 重寫鼠標釋放時間 mouseReleaseEvent()
void MyClickLabel::mouseReleaseEvent(QMouseEvent *ev)
{
    Q_UNUSED(ev)
    if(ev->button() == Qt::LeftButton)
    {
        emit clicked();	// 發射信號
    }
}

提升窗口部件

在你需要用到這種label得ui文件里,點擊label右鍵提升為自定義的控件

連接信號和槽函數

之后只需要使用connect函數,連接信號和槽

connect(ui->registAccount,SIGNAL(clicked()),this,SLOT(onRegisterAccountClicked()));

槽函數處理

void LoginWindow::onRegisterAccountClicked()
{
    QDesktopServices::openUrl(QUrl(QString("https://www.baidu.com")));
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM