Otwieranie dowolnego typu pliku

Odpowiedz Nowy wątek
2015-02-03 20:49

Rejestracja: 5 lat temu

Ostatnio: 7 miesięcy temu

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ąć?

yyy.. usunąć spacje z nazwy pliku - Westen 2015-02-03 21:44

Pozostało 580 znaków

2015-02-03 21:49

Rejestracja: 6 lat temu

Ostatnio: 9 miesięcy temu

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

Pozostało 580 znaków

2015-02-04 18:37

Rejestracja: 5 lat temu

Ostatnio: 7 miesięcy temu

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...

Pozostało 580 znaków

Odpowiedz

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