[英]Open multiple files from file managers
我已经构建了一个(Linux)GUI应用程序,该应用程序可以从终端启动,并接受未定义数量的文件作为参数。 该应用程序读取sys.argv并在QListWidget中列出这些文件的名称。
代码类似于:
import sys
from PyQt4.QtGui import QApplication, QMainWindow, QCoreApplication
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
# parse command line arguments
for i in QCoreApplication.argv()[1:]:
...
def main():
app = QApplication(sys.argv)
...
我要做的是能够从文件管理器中选择多个文件,并通过文件管理器提供的“打开方式...”选项使用我的应用程序打开它们。 如何做到这一点?
使用当前代码,当我尝试使用它时,QListWidget上仅显示所选文件之一。
编辑:
最终看来,这取决于文件管理器。 我尝试了一些文件管理器,然后...
pcmanfm:它仅打开所选文件之一。
spacefm:正常工作!
海豚:它将每个文件打开到我程序的不同实例。 如果我选择3个文件,它将打开我的应用3次,每个文件一个。
nautilus:我没有用它打开任何文件。 我的程序未在建议的应用程序中列出,我找不到任何方法。
确实没有足够的信息来给出明确的答案,但是...
首先,您是否检查过代码顶部的print sys.argv
看起来像您期望的那样?
如果是这样,如果您更改线路,它是否起作用...
for i in QCoreApplication.argv()[1:]:
...至...
for i in sys.argv[1:]:
出于调试目的,您可能还希望包括该行...
assert QCoreApplication.argv()[1:] == sys.argv[1:]
...就在开始循环之前。
使用QFileDialog: 文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.