Python 右键单击文件并使用PyQt应用程序打开

Python 右键单击文件并使用PyQt应用程序打开,python,pyqt,pyqt4,Python,Pyqt,Pyqt4,我使用下面的代码在pyqt中打开和读取文本文件。 但我想要的是: 我将选择硬盘上的任何文本文件。然后右键单击它,选择open with并浏览我的pyqt脚本,文件将被打开 用我的sript 我知道我可以使用终端中的“sys.argv”来完成。但是如何用gui程序来实现呢?请让我知道 当前代码: import sys from PyQt4 import QtGui from PyQt4 import QtCore class OpenFile(QtGui.QMainWindow): de

我使用下面的代码在pyqt中打开和读取文本文件。 但我想要的是: 我将选择硬盘上的任何文本文件。然后右键单击它,选择open with并浏览我的pyqt脚本,文件将被打开 用我的sript

我知道我可以使用终端中的“sys.argv”来完成。但是如何用gui程序来实现呢?请让我知道

当前代码:

import sys
from PyQt4 import QtGui
from PyQt4 import QtCore

class OpenFile(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self)
        self.setGeometry(300, 300, 350, 300)
        self.setWindowTitle('OpenFile')
        self.textEdit = QtGui.QTextEdit()
        self.setCentralWidget(self.textEdit)
        self.statusBar()
        self.setFocus()
        exit = QtGui.QAction(QtGui.QIcon('open.png'), 'Open', self)
        exit.setShortcut('Ctrl+O')
        exit.setStatusTip('Open new File')
        self.connect(exit, QtCore.SIGNAL('triggered()'), self.showDialog)
        menubar = self.menuBar()
        file = menubar.addMenu('&File')
        file.addAction(exit)
    def showDialog(self):
        filename = QtGui.QFileDialog.getOpenFileName(self, 'Open file',
                                                     '/home')
        file=open(filename)
        data = file.read()
        self.textEdit.setText(data)
app = QtGui.QApplication(sys.argv)
cd = OpenFile()
cd.show()
app.exec_()

这项任务取决于操作系统,你必须在你的应用程序中注册它,最好表明你的OSI已经用我在这里发布的脚本尝试过了。但它不起作用。我正在使用linux和pcmanfm文件管理器。我右键单击了一个文本文件,选择了open with并浏览了.py文件。什么也没发生。@akiksiddique。这不是一个编程问题,因此与SO无关。有关如何解决您的问题的提示,请参见中的部分。@Ekhumaro,也许我不能向您解释清楚。我不是在寻找pcmanfm的帮助。我的代码必须更改才能工作。这是一个编程问题。我知道sys.argv用于命令行程序。如何为gui程序执行此操作?请再读一遍我的帖子。@akiksiddique。gui程序没有区别:
sys.argv
的工作方式完全相同。你不能解决什么具体问题?这项任务取决于操作系统,你必须在你的应用程序中注册它,最好表明你的OSI已经用我在这里发布的脚本尝试过了。但它不起作用。我正在使用linux和pcmanfm文件管理器。我右键单击了一个文本文件,选择了open with并浏览了.py文件。什么也没发生。@akiksiddique。这不是一个编程问题,因此与SO无关。有关如何解决您的问题的提示,请参见中的部分。@Ekhumaro,也许我不能向您解释清楚。我不是在寻找pcmanfm的帮助。我的代码必须更改才能工作。这是一个编程问题。我知道sys.argv用于命令行程序。如何为gui程序执行此操作?请再读一遍我的帖子。@akiksiddique。gui程序没有区别:
sys.argv
的工作方式完全相同。您无法解决的具体问题有哪些?