Nach "Cancel" verschwinden Werte
In QString gibt es doch verschiedene RegExp- und Ersetzungsfunktionen.
Code: Alles auswählen
QString endung = dateiname.midRef(dateiname.lastIndexOf('.') + 1);
QFileInfo:nici hat geschrieben:hab mal ne frage. wie kann ich mir die Endung der Datei anzeigen lassen und überprüfen lassen, ob es in der Auflistung mit dabei ist??
- suffix()
- completeSuffix()
- baseName()
- completeBaseName
Einfach Doku fragen.
Und nach dem ermittelten Suffix kannst du dann in deinem filter suchen.
Also du hast die Dateinamen in dem Filter?
Irgendwie so:
Ja?
Dann kannst du auch wunderbar suchen:
Achso:
midRef ist so ähnlich wie sub_str in den Standard-Strings.
Der zweite Parameter gibt dabei an, wie viele Zeichen aus dem String gelesen werden sollen. Ich habe ihn weggelassen, dann wird bis zum Ende gelesen. Der erste Parameter gibt an, ab wo ausgelesen wird. Es werden also alle Zeichen hinter dem letzten Auftreten von '.' ausgelesen.
Du kannst aber auch die suffix()-Funktion verwenden.
Irgendwie so:
Code: Alles auswählen
QString filter = "Dateien (*.tiff, *.png)";
Dann kannst du auch wunderbar suchen:
Code: Alles auswählen
if(filter.contains(QRegExp("\*\." + dateiendung + "[,\)]"))
// Gefunden
else
// nicht gefunden
midRef ist so ähnlich wie sub_str in den Standard-Strings.
Der zweite Parameter gibt dabei an, wie viele Zeichen aus dem String gelesen werden sollen. Ich habe ihn weggelassen, dann wird bis zum Ende gelesen. Der erste Parameter gibt an, ab wo ausgelesen wird. Es werden also alle Zeichen hinter dem letzten Auftreten von '.' ausgelesen.
Du kannst aber auch die suffix()-Funktion verwenden.
also ich hab es mal einfach in die savePic() gemacht.
aber es kommt die Fehlermeldung "'class QString' has no member named 'midRef'
"
ist das so überhaupt richtig (sry dass ich so blöde fragen stelle, aber ich hab grad überhaupt keinen Überblick mehr).
Code: Alles auswählen
void TabEins::savePic()
{
//tabWidget->widget(0);
QFileDialog *tmp = new QFileDialog;
QString Dateiendung= " *.png";
QString fileName = tmp->getSaveFileName (this, "Speichern", "unbekannt" ," *.png;; *.jgp;; *.jpeg;; *.bmp;; *.tiff;; *.xbm;; *.xpm", &Dateiendung);
//falls vom Benutzer keine Dateiendung angegeben wird:
qWarning() << "TEST" << fileName;
if(!fileName.isEmpty()){
if (fileName.section('.', -1)!=Dateiendung.section('.',-1))
{ //Dateiendung an den Namen hängen:
fileName.append(Dateiendung.section('*',-1));
QString endung = fileName.midRef(dateiname.lastIndexOf('.') + 1);
qDebug()<< endung;
}
imageLabel->pixmap()->toImage().save(fileName);
}
};"
ist das so überhaupt richtig (sry dass ich so blöde fragen stelle, aber ich hab grad überhaupt keinen Überblick mehr).
Hmm mir fällt nichts ein ^^
Hmm, welche Qt-Version hast du denn?
Aber machs doch einfach so:
Und wenn du nur png erlauben möchstes, kannst du auch gleich so prüfen:
Viele liebe Grüße
The User
Aber machs doch einfach so:
Code: Alles auswählen
QString endung = QFileInfo(fileName).suffix();
Code: Alles auswählen
if(QFileInfo(fileName).suffix().toLower() == "png")
// richtige Endung
The User
Also Schritt für Schritt:
Welche Auflistung meinst du?
Ich denke einmal:
QString Dateiendung= " *.png";
Was soll überprüft werden?
Ich denke einmal die ausgewählte Datei.
Das hatten wir doch schon einmal, oder?
Welche Auflistung meinst du?
Ich denke einmal:
QString Dateiendung= " *.png";
Was soll überprüft werden?
Ich denke einmal die ausgewählte Datei.
Code: Alles auswählen
if(Dateiendung.contains(QRegExp("\*\." + QFileInfo(fileName).suffix() + "[,\)]")))
{
// Normale Ausführung
}
else
{
// falsche Dateiendung
}
ich habe doch dies Zeile zum speichern:
Da steht jetzt doch png, jpg..., Und bevor ich speichere, möchte ich das überprüft wird, ob die angegebene Endung mit dabei steht.
Das meine. Aber ich versuchs jetzt mal mit deinem Codeschnippsel, danke dir viel mals.
lg
nici
Code: Alles auswählen
QString fileName = tmp->getSaveFileName (this, "Speichern", "unbekannt" ," *.png;; *.jgp;; *.jpeg;; *.bmp;; *.tiff;; *.xbm;; *.xpm", &Dateiendung);
Das meine. Aber ich versuchs jetzt mal mit deinem Codeschnippsel, danke dir viel mals.
lg
nici
Hmm mir fällt nichts ein ^^