filebar = new QMenuBar(this);
file = new QMenu(tr("&Datei"), filebar);
filebar->addMenu(file);
s_filedial = new QFileDialog(this);
s_filedial->setAcceptMode(QFileDialog::AcceptSave);
s_filedial->setFilter( "Text (*.wh40k)" );
file->addAction(tr("&Speichern"), this, SLOT(s_list() ) );
wenn ich dann in meinen programm im speichermenu auf speichern drücke kommt zwar ein speicherdialog. nachdem ich in diesem aber eine datei/ordner festgelegt habe öffnet sich jedch ein" save as" dialog in dem ich alles nochmal machen muss und in dem dann auch meine save_data()-fkt. ausgeführt wird. warum?
Das Problem ist hier:
if (s_filedial->exec() == QDialog::Accepted)
mit exec() öffnest du dein FileDialog
f_name = s_filedial->getSaveFileName();
aber auch mit getSaveFileName() (ist eine statische Methode) öffnest du das FileDialog. Daher öffnet sich das FileDialog auch zum zweiten mal.
Also entweder das eine, oder das andere. Bei dir würde ich eher wohl das zweite empfehlen. Hat halt den Vorteil, dass du keine Instanz von QFileDialog erstellen musst.