Eine Frage der Eleganz

Alles rund um die Programmierung mit Qt
Antworten
Ryu1991
Beiträge: 27
Registriert: 11. Mai 2009 09:29

Eine Frage der Eleganz

Beitrag von Ryu1991 »

Ich habe mich gefragt, ob das irgendwie schöner geht?
Ich setze hier nen Hintergrund bild, dessen Pfad ich in Files habe, aber für die Windows-funktion brauche ich ja \ als Trennzeichen statt /. Deswegen das ganze replace, und er will ein void* und kein const void*. Deshalb das Char-Array. Geth das Eleganter?

Code: Alles auswählen

QString str( Files[index].filePath());
str.replace(QString("/"), QString("\\"));
sprintf(bmp, str.toStdString().c_str());
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,bmp,SPIF_SENDCHANGE|SPIF_UPDATEINIFILE);
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Einfacher (und auch mit non-Ascii-Zeichen im Pfad funktionierend)

Code: Alles auswählen

const QString path = QDir::toNativeSeparators( Files[index].filePath() ); 
SystemParametersInfoW(SPI_SETDESKWALLPAPER,
             0,
             (PVOID)path.utf16(),
             SPIF_SENDCHANGE|SPIF_UPDATEINIFILE);
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Ryu1991
Beiträge: 27
Registriert: 11. Mai 2009 09:29

Beitrag von Ryu1991 »

Cool, danke, gefällt mir schon viel besser :)
Nur ne ganz dumme Frage: Was bedeutet das utf16, ich meine das muss doch für irgendwas ne abkürzung sein.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

utf-16 ist utf-16 :)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten