Otwieranie dowolnego typu pliku

0

Hej,

W programie po dwukliku w QListView object powinien mi się otworzyć wybrany załącznik, np jpg w przeglądarce obrazów windows, pliki odt w OpenOffice writer itd.

Mam taką funkcję:

 
void pliki_funkcje::otworz(QString sciezka)
{
    QDesktopServices desk;
    desk.openUrl(QUrl(sciezka));
}

I odpalam ją za pomocą:

void okno_glowne::on_lv_zalaczniki_doubleClicked(const QModelIndex &index)
{
    QString sciezka;
    QString plik = index.data(Qt::DisplayRole).toString();;

    sciezka = QCoreApplication::applicationDirPath()+"/img/"+plik;

    pliki_funkcje pl;
    pl.otworz(sciezka);
}
 

O ile taki plik:
d:/Inzynierka2/build-Inzynierka2-Desktop_Qt_5_1_1_MinGW_32bit-Debug/debug/img/image.jpg
otwiera się poprawnie, to już taki plik:
ShellExecute 'd:/Inzynierka2/build-Inzynierka2-Desktop_Qt_5_1_1_MinGW_32bit-Debug/debug/img/Cesja do umowy najmu.odt' failed (error 2)
sypie błędem error2, ponieważ nazwa pliku ma w sobie spacje. Jakieś pomysły jak to ominąć?

0

Przypuszczam iż wcześniej przejrzałeś dokumentacje i fora dotyczące QT a ten link zupełnie przypadkiem Ci umknął

http://qt-project.org/forums/viewthread/19962

0

Ale przecież mam tak samo, jak jest w przykładzie...

void pliki_funkcje::otworz(QString sciezka)
{
    QDesktopServices desk;
    desk.openUrl(QUrl(sciezka));
} 

A w przykładzie jest

QString str="/home/ab/My Video.avi";
QDesktopServices::openUrl(QUrl(str));
 

A co do usuwania spacji, nie mogę narzucić użytkownikowi, który będzie obsługiwał program, żeby sobie w każdym przez niego pliku (a może ich być setki) pododawał _ zamiast spacji...

1 użytkowników online, w tym zalogowanych: 0, gości: 1