Moin, moin!
auch wenn ich wie viele Newbies hier Gefahr laufe eine möglicherweise schon gestellte Frage mit einem "strengen" Hinweis auf die Suche-Funktion oder die Doku zu enden:
Ich möchte aus meiner Anwendung per Push-Button ein Dokument in der jeweiligen Standard-Anwendung (hier PDF) öffnen. Den Pfad zum Reader anzugeben halte ich für nicht sehr elegant, da dieser auf den Systemen der Benutzer unterschiedlich lauten kann.
Wie kann ich also den entsprechenden Befehl absetzen um das Dokument mit der Standardanwendung zu öffnen ohne den Pfad mit anzugeben?
Danke im Voraus,
Ernst
externe Anwendung starten, WinXP Qt4.5
Das öffnen eines Dokuments mit der Standardanwendung erledigt völlig automatisch
QDesktopServices::openUrl()
für dich.
Der Button schickt dir ein clicked()-SIGNAL, wenn drauf geclickt wurde.
Musst halt in deiner MainWindow-Klasse einen SLOT anlegen, in dem du dann das Dokument öffnest. Wie du das clicked() auf deinen SLOT kriegst steht ausführlich in der DOKU zu QObject::connect und im Kapitel Signal/Slot.
Grüßle
QDesktopServices::openUrl()
für dich.
Der Button schickt dir ein clicked()-SIGNAL, wenn drauf geclickt wurde.
Musst halt in deiner MainWindow-Klasse einen SLOT anlegen, in dem du dann das Dokument öffnest. Wie du das clicked() auf deinen SLOT kriegst steht ausführlich in der DOKU zu QObject::connect und im Kapitel Signal/Slot.
Grüßle
QDesktopServices ist mit sicherheit der eleganteste Weg ...
nicht vergessen, dort musst du den pfad zu deinem pdf in einer URL notification uebergeben also "file://c:/myDocuments/myDoc.pdf" z.b.
einige Desktopsysteme , unter anderem windows, unterstuetzen auch auf systemebene das automatische zuordnen.
Also in der console ein c:\myDocuments\myDoc.pdf angeben und dein pdf viewer oeffnet sich gleich mit dem file. Vom eigenen programm aus kannst das auch machen, ala "system("c:\\myDocuments\\myDoc.pdf");
Das wuerde dein eigenen Prozess aber ueberlagern, also dein programm wuerde erst weitergehen, wenn das aufgerufene programm geschlossen wird.
unter c++ gibts dafuer die exec befehle, die machen dir das ding schon in nem neuen prozess auf.
Besser ist dafuer aber QProcess, mit dem geht das genau so und kontrollierter und komfortabler.
Ciao ...
nicht vergessen, dort musst du den pfad zu deinem pdf in einer URL notification uebergeben also "file://c:/myDocuments/myDoc.pdf" z.b.
einige Desktopsysteme , unter anderem windows, unterstuetzen auch auf systemebene das automatische zuordnen.
Also in der console ein c:\myDocuments\myDoc.pdf angeben und dein pdf viewer oeffnet sich gleich mit dem file. Vom eigenen programm aus kannst das auch machen, ala "system("c:\\myDocuments\\myDoc.pdf");
Das wuerde dein eigenen Prozess aber ueberlagern, also dein programm wuerde erst weitergehen, wenn das aufgerufene programm geschlossen wird.
unter c++ gibts dafuer die exec befehle, die machen dir das ding schon in nem neuen prozess auf.
Besser ist dafuer aber QProcess, mit dem geht das genau so und kontrollierter und komfortabler.
Ciao ...