Qt: Belibige Datei mit Standardanwendung öffnen



  • moin, ich suche ein Methode eine Beliebige Datei mit dem dazu gehörigem Program zu öffnen.

    z.B:
    *.doc mit Word unter windows / unter KDE mit openoffice
    *.jpg mit nem Bildbetrachter
    usw.

    mfg Emperor_L0ser



  • Ich glaube das geht nicht systemunabhängig mit einer Methode. Du musst schon das verwenden, was dir die aktuelle Umgebung liefert. Für KDE verwendet man zum Beispiel die Klasse KRun.



  • Sowas hab ich irgendwie erwartet...
    dann hab ich jetzt viel arbeit vor mir...



  • Unter Linux/Unix gibt es unter /etc und im Homedir eine Datei mime.types (bzw. .mime.types). Dort ist die Anwendung für den entsprechenden Mime-Typ angeführt.
    Unter Windows ist das wohl irgend wie in der Registry gespeichert. Wenn du dir also etwas plattformunabhängiges schreiben willst, sollte es doch nicht alzu schwer sein.



  • Gibt es einen vernünftigen Grund warum die das in QT nicht reingenommen haben?

    Unter Windows gibt es zum Beispiel die Funktion ShellExecute die das macht.

    Muss man bei Linux das per Hand auslesen oder gibt es da auch so eine fertige Funktion?



  • Ohne es getestet zu haben, Google findet auf Anhieb:
    http://hrabia.ibib.waw.pl/~winnie/qtopen.html
    😉



  • Ich glaub das ist sogar was für die FAQ 🙂



  • 999999999.txt;2;9



  • Dafür gibt es schon seit Qt 4.2 QDesktopServices



  • Christian81 schrieb:

    Dafür gibt es schon seit Qt 4.2 QDesktopServices

    Funktioniert bei mir nur unzuverlässig. Zum einen gibts bei linux/win unterschiede, was die codierung der url angeht, zum anderen funktionieren manche dateien schlicht nicht (vista x64, qt 4.4). ein einfaches beispiel mit einem qdirmodel zeigt beim browsen auf der festplatte, dass gut die hälfte nicht zu öffnen geht.
    zwar offtopic, aber trotzdem: ausserdem scheint der fileiconprovider auch nicht das tollste zu sein. zu ebenfalls etwa der hälfte der files fehlt das icon, oder es wird ein falsches dargestellt.



  • Christian81 schrieb:

    Dafür gibt es schon seit Qt 4.2 QDesktopServices

    schau mal wie alt der thread ist 😉



  • @sothis: Darauf habe ich nicht geachtet - der Spam hat es nach oben gebracht.
    @botan710: Ich habe noch nicht viel von Problemen solcher Art gehört - kannst du Beispiele liefern (bzw. task-tracker Ids von deinen Bugreports)?



  • Christian81 schrieb:

    @sothis: Darauf habe ich nicht geachtet - der Spam hat es nach oben gebracht.
    @botan710: Ich habe noch nicht viel von Problemen solcher Art gehört - kannst du Beispiele liefern (bzw. task-tracker Ids von deinen Bugreports)?

    Bugreports? Habe ich bisher keine erstellt.

    Btw ich schiebe das denk ich mal auf Vista, hatte unter Vista schon mehrere Probleme mit Qt. Z.B. scheint der QFileSystemWatcher buggy zu sein bzw nicht zu funktionieren (hatte ich damals auch auf qtforum.org diskutiert). Desweiteren scheint Qt unter (meinem) Vista unglaublich langsam zu sein. Menüs klappen langsam auf, wenn ich 2 Radiobuttons abwechselnd drücke seh ich die Buttons ein/ausfaden...
    Werde heute abend mal genauer schauen, wie es sich mit dem QDirModel/QFileIconProvider verhält, unter XP/Vista/*NIX.


Log in to reply