• 欢迎访问1024小神,一个只会Python的程序猿不是一个好司机
  • 有什么想对我说的可以在留言板里给我留言哦~
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏1024小神吧

Pyqt5 打开外部链接

Python 1024小神 2年前 (2020-01-29) 504次浏览 0个评论

Pyqt 触发一个事件,打开外部链接,我找到了这个方法,供大家参考

PyQt5 打开外部链接的方法

1.Python 自带的webbrowser 浏览器控制模块

webbrowser提供了三种方法

2.部分控件的Link属性链接

Pyqt有几个控件带有 setOpenExternalLinks , 如 QTextLabel 、 QTextBrowser 等
当 setOpenExternalLinks 值为TURE 表示可通过html 添加 A 标签打开外部链接, 如设置:

self.label.setOpenExternalLinks(True)
self.label.setText(_translate("MainWindow", "<a href=\"https://www.1024shen.com\"><span style=\" text-decoration: underline; color:#0000ff;\">1024小神</span></a>", None))

实例代码

示例代码与效果:

# -*- coding: utf-8 -*-
 
#
# Created: Py40.com Feb 20 10:03:54 2017
#      by: PyQt5
#
 
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton,QDesktopWidget,QLabel,QGridLayout
 
import webbrowser,sys
 
 
class Ui_MainWindow(QWidget):
    item_name = "PyQt打开外部链接"
 
    def __init__(self):
        super().__init__()
        self.initUI()
 
    def initUI(self):
        self.tips_1 = QLabel("网站:www.1024shen.com");
        self.tips_1.setOpenExternalLinks(True)
 
        self.btn_webbrowser = QPushButton('webbrowser效果', self)
 
        self.btn_webbrowser.clicked.connect(self.btn_webbrowser_Clicked)
 
        grid = QGridLayout()
        grid.setSpacing(10)
 
        grid.addWidget(self.btn_webbrowser, 1, 0)
        grid.addWidget(self.tips_1, 2, 0)
 
        self.setLayout(grid)
 
        self.resize(250, 150)
        self.setMinimumSize(266, 304);
        self.setMaximumSize(266, 304);
        self.center()
        self.setWindowTitle(self.item_name)
        self.show()
 
 
    def btn_webbrowser_Clicked(self):
        webbrowser.open('https://www.1024shen.com/')
 
 
    def center(self):
        qr = self.frameGeometry()
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())
 
 
if __name__ == "__main__":
    app = QApplication(sys.argv)
    a = Ui_MainWindow()
    sys.exit(app.exec_())

如有失效,请留言告知丨转载请注明原文链接:Pyqt5 打开外部链接
点赞 (0)

您必须 登录 才能发表评论!