Gia*_*uca 2 python url pyqt default-browser qaction
我有一个带有一些按钮和一个情节的主窗口.我使用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())
Run Code Online (Sandbox Code Playgroud)
如您所见,我有一个文件菜单,以及一个带有actionFsa_format操作的工具按钮.我想点击这个并打开一个外部网址.
您需要将操作的触发信号连接到处理程序.
所以在__init__主窗口中,执行以下操作:
self.ui.actionFsa_format.triggered.connect(self.openUrl)
Run Code Online (Sandbox Code Playgroud)
你的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')
Run Code Online (Sandbox Code Playgroud)