簡體   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