繁体   English   中英

从文件管理器打开多个文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM