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