Seite 1 von 1
QFileDialog
Verfasst: 28. Juli 2011 22:31
von mugi
Hallo,
ich wollte einen QFileDialog erzeugen, so dass der User einen File auswählt (Der Pfad zu dieser File wird gebraucht)
So weit so gut, was mich aber stört ist dass so bald man einen File auswählt schließt sich der Dialog sofort von selbst. Zwar bekomme ich den Pfad zu den Datei, aber dieses Nebeneffekt will ich los werden.
Es sollten angeblich über die Methode "selectedFiles()" sogar gleichzeitig mehrere Files ausgewählt werden können !!
Den Code den ich verwende sieht so aus:
Code: Alles auswählen
QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::AnyFile);
QStringList fileNames;
if (dialog.exec())
fileNames = dialog.selectedFiles();
pfad=fileNames.at(1);
Weiß jemand woran das liegen könnte ?
Re: QFileDialog
Verfasst: 29. Juli 2011 00:06
von ScyllaIllciz
Was soll den Deiner Meinung nach passieren, wenn man eine Datei ausgewählt hat?
Oder was meinst Du mit "Datei ausgewählt"? Nur markiert oder mit Doppelklick geöffnet.
Hast Du schon mal die statische Methode QFileDialog::getOpenFileName(...) probiert?
Re: QFileDialog
Verfasst: 29. Juli 2011 03:26
von js
Hi das könnte dir vielleicht helfen
Zum auswählen der Datei:
Code: Alles auswählen
QString file;
file= QFileDialog::getOpenFileName(
this, "Bitte auswählen",
"./Ordner","Dokumente (*.txt)" ); }
if( !file.isNull() ) {
QString info("Folgende Datei wurde ausgewählt:\n");
info.append(file);
QMessageBox::information(
this, " Ihre Auswahl", info, QMessageBox::Ok );
}
Die Datei zeilenweise auslesen:
Code: Alles auswählen
QFile file2(file);
if (file2.exists()){
if (!file2.open(QFile::ReadOnly | QFile::Text)) {
QMessageBox::warning(this, tr("Datei oeffnen"),
tr("Kann Datei %1: nicht lesen\n%2.")
.arg(file2.errorString()));
}else{
QTextStream in(&file2);
while (!in.atEnd()) {
line = in.readLine();
}
lg
Re: QFileDialog
Verfasst: 29. Juli 2011 09:46
von mugi
Vielen Dank für eure Hilfe, aber das Problem steht immer noch!
@ScyllaIllciz , das Problem ist, dass das QFileDialog nicht wartet bis man auf "open" gedrückt hat oder mit Doppelklick den File öffnet, sondern schließt sich von selbst sobald der File markiert wurde.
Die statische Methode QFileDialog::getOpenFileName(...) habe ich schon probiert->selber Problem
@js dein Code hat mich auf Folgende Idee gebracht, aber es ist immer noch nicht was ich wollte!
Code: Alles auswählen
QString pfad;
int ant;
antwort=QMessageBox::No;
while(antwort == QMessageBox::No)
{
file= QFileDialog::getOpenFileName(this, "Bitte auswählen","./Ordner","Dokumente (*.txt)" );
if( !pfad.isNull())
{
QString info("Folgende Datei wurde ausgewählt:\n");info.append(file);
antwort=QMessageBox::information(this, " Ihre Auswahl", info, QMessageBox::Yes | QMessageBox::No);
}
}
Re: QFileDialog
Verfasst: 29. Juli 2011 12:34
von archer
Kann es sein das dein Windows, wenn du unter Windows arbeitest, eingestellt ist auf "Öffnen durch einfachen Klick"?
Ordneroptionen -> Register Allgemein -> Markieren von Elementen.
Dann ist das das Verhalten das du beschreibst und du somit auch gefordert hast!?
Re: QFileDialog
Verfasst: 29. Juli 2011 13:12
von mugi
yaaaaaaaaa, voll Treffer
Danke sehr, Problem gelöst.
Re: QFileDialog
Verfasst: 29. Juli 2011 16:56
von ScyllaIllciz
@archer
Das wäre meine nächste Frage gewesen

.