Dateimanager (Dolphin) "Öffnen mit" ... script.py
Verfasst: Dienstag 21. Februar 2012, 21:29
hallo,
Situation: Ich habe ein Programm "Antony" (https://github.com/RausH/Antony) in Pyton/PyQt4 geschrieben. Das Programm speichert in einer sqlite Datei Metadaten für Bilder, die es in ein Verzeichnis kopiert, ab. Heute wollte ich dann aus Gewohnheit im Dateimanager (KDE bedingt: Dolphin) einen Rechtsklick auf eine solche Datenbank machen um dann im Kontextmenü "Öffnen mit" auszuwählen. Als Ziel habe ich dann Antony.desktop angegeben. Üblicherweise kann ich mit Antony.desktop das Programm einwandfrei starten, nur heute mit "Öffnen mit" ging nichts. Nicht weiter verwunderlich, habe ich doch in Antony keinen Code, der so etwas regeln könnte.
Versuch einer Lösung: Im ersten Ansatz ging ich davon aus, dass "Öffnen mit" das Programm startet und dann die Datei als Argument übergibt. Wenn ich den Dateinamen einmal habe, sollte alles weitere nicht so schwierig sein. Ich habe daher Antony etwas erweitert, nur um zu sehen, was da wie übergeben wird.
Wenn ich jetzt Antony von der Konsole aus starte bekomme ich wie erwartet als Ausgabe den Pfad zu Antony.py. Ebenso, wenn ich die *.desktop Datei zum starten verwende. Wenn ich nun in der Konsole die sqlite Datei als Argument dazu schreibe, so bekomme ich erwartungsgemäß eine zweite Zeile mit dem Pfad zur sqlite Datei. Nur leider komme ich nicht weiter, da die Versuche mit "Öffnen mit" schon so bald fehlschlagen, dass ich nicht einmal die shell bekomme in der ich einen Output sehen könnte.
Frage: Habe ich "Öffnen mit" nicht verstanden? bzw. wie ist der Mechanismus von "Öffnen mit"? Kann es an meiner *.desktop Datei liegen? Was muss ich tun, damit "Öffnen mit" mit einem Python Programm funktioniert? Und weil ich will, dass das auch in Windows funktioniert, gibts da große Unterschiede aus der Sicht meines Programms?
Hier noch meine *.desktop Datei:
Antony.py ist >1500 Zeilen, daher bei Bedarf bitte auf github ansehen.
Vielen Dank.
mit freundlichen Grüßen
Reinhard
Situation: Ich habe ein Programm "Antony" (https://github.com/RausH/Antony) in Pyton/PyQt4 geschrieben. Das Programm speichert in einer sqlite Datei Metadaten für Bilder, die es in ein Verzeichnis kopiert, ab. Heute wollte ich dann aus Gewohnheit im Dateimanager (KDE bedingt: Dolphin) einen Rechtsklick auf eine solche Datenbank machen um dann im Kontextmenü "Öffnen mit" auszuwählen. Als Ziel habe ich dann Antony.desktop angegeben. Üblicherweise kann ich mit Antony.desktop das Programm einwandfrei starten, nur heute mit "Öffnen mit" ging nichts. Nicht weiter verwunderlich, habe ich doch in Antony keinen Code, der so etwas regeln könnte.
Versuch einer Lösung: Im ersten Ansatz ging ich davon aus, dass "Öffnen mit" das Programm startet und dann die Datei als Argument übergibt. Wenn ich den Dateinamen einmal habe, sollte alles weitere nicht so schwierig sein. Ich habe daher Antony etwas erweitert, nur um zu sehen, was da wie übergeben wird.
Code: Alles auswählen
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
for arg in sys.argv:
print(arg)
Frage: Habe ich "Öffnen mit" nicht verstanden? bzw. wie ist der Mechanismus von "Öffnen mit"? Kann es an meiner *.desktop Datei liegen? Was muss ich tun, damit "Öffnen mit" mit einem Python Programm funktioniert? Und weil ich will, dass das auch in Windows funktioniert, gibts da große Unterschiede aus der Sicht meines Programms?
Hier noch meine *.desktop Datei:
Code: Alles auswählen
[Desktop Entry]
Comment[de]=
Comment=
Exec=python2 /home/user/Antony_for_git/Antony.py
GenericName[de]=Datenbank zum Archivieren von Fotos
GenericName=Datenbank zum Archivieren von Fotos
Icon=/home/user/Antony_for_git/icon.png
MimeType=
Name[de]=Fotoarchiv - Antony Edge
Name=Fotoarchiv - Antony Edge
Path=/home/user/Antony_for_git
StartupNotify=true
Terminal=true
TerminalOptions=
Type=Application
Vielen Dank.
mit freundlichen Grüßen
Reinhard