端末から起動でき、未定義の数のファイルを引数として受け入れる (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)
...
私がしたいのは、ファイルマネージャーから複数のファイルを選択し、ファイルマネージャーが提供する「開く...」オプションを使用してアプリで開くことができるようにすることです。これはどのように達成できますか?
現在のコードでは、試してみると、選択したファイルの 1 つだけが QListWidget に表示されます。
編集:
最終的にはファイルマネージャーに依存しているようです。いくつかのファイルマネージャーで試してみました...
pcmanfm: 選択したファイルの 1 つだけを開きます。
spacefm: 正常に動作します!
dolphin: プログラムの別のインスタンスに対して各ファイルを開きます。3 つのファイルを選択すると、ファイルごとに 1 つずつ、アプリが 3 回開きます。
nautilus: ファイルを開くことができませんでした。私のプログラムは提案されたアプリケーションにリストされておらず、それを行う方法が見つかりませんでした。