【问题标题】:PyQt: How to load a url from a menu itemPyQt:如何从菜单项加载 url
【发布时间】:2014-05-05 05:00:42
【问题描述】:

我有一个带有一些按钮和绘图的主窗口。我使用 Qt Designer 添加了一个文件菜单。现在,如果我运行我的应用程序,一切都很好,我可以看到一个典型的菜单栏。问题是,我想点击菜单栏并执行一个操作——我想用默认浏览器打开一个互联网网页。有人可以帮我吗?

这是 Qt Designer 使用 pyuic4 生成的代码(我只显示文件菜单的代码):

self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1445, 21))
self.menubar.setObjectName(_fromUtf8("menubar"))
self.menuFile = QtGui.QMenu(self.menubar)
self.menuFile.setObjectName(_fromUtf8("menuFile"))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.actionFsa_format = QtGui.QAction(MainWindow)
self.actionFsa_format.setObjectName(_fromUtf8("actionFsa_format"))
self.menuFile.addAction(self.actionFsa_format)
self.menubar.addAction(self.menuFile.menuAction())

如您所见,我有一个文件菜单和一个带有 actionFsa_format 操作的工具按钮。我想点击这个并打开一个外部网址。

【问题讨论】:

    标签: python url pyqt qaction default-browser


    【解决方案1】:

    您需要将操作的triggered 信号连接到处理程序。

    所以在主窗口的__init__ 中,执行以下操作:

    self.ui.actionFsa_format.triggered.connect(self.openUrl)
    

    您的openUrl 方法可能是这样的:

    def openUrl(self):
        url = QtCore.QUrl('http://some.domain.com/path')
        if not QtGui.QDesktopServices.openUrl(url):
            QtGui.QMessageBox.warning(self, 'Open Url', 'Could not open url')
    

    【讨论】:

    猜你喜欢
    • 2023-03-26
    • 2017-03-21
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多