Nach "Cancel" verschwinden Werte
Nach "Cancel" verschwinden Werte
hallo,
wenn ich auf meiner Gui-Oberfläche auf den Button "load" gehe, mich aber dann doch anders entscheide und "cancel" drücke, dann verschwinden die Werte die in den DoubleSpinBoxes gestanden haben. Wie kann ich es verhindern, dass die Werte verschwinden??
lg
nici
wenn ich auf meiner Gui-Oberfläche auf den Button "load" gehe, mich aber dann doch anders entscheide und "cancel" drücke, dann verschwinden die Werte die in den DoubleSpinBoxes gestanden haben. Wie kann ich es verhindern, dass die Werte verschwinden??
lg
nici
Zuletzt geändert von nici am 11. Dezember 2008 13:52, insgesamt 2-mal geändert.
Hmm mir fällt nichts ein ^^
ich habe keinen debugger, ich benutze geany als entwicklungsumgebung, will mir aber eclipse runter laden.
meine Methode zum öffnen.
lg
nici
meine Methode zum öffnen.
Code: Alles auswählen
void TabZwei::open(){
QString fileName = QFileDialog::getOpenFileName(this, "Open File", "/home", ("Datei(*.ini *.txt *.dat *.odt)"));
qDebug() << "Filename: " << fileName << endl ;
NSettings n(fileName, this);
qDebug() << "Status: " << static_cast<int>(n.status()) << endl ;
qDebug() << "All keys: " << n.allKeys() << endl ;
QHashIterator<QString, QDoubleSpinBox *> it(_hash) ;
while(it.hasNext()) {
it.next() ;
qDebug() << "Key \"" << it.key() << "\": insert value "
<< n.readDouble(it.key()) << endl ;
it.value()->setValue(n.readDouble(QString::QString(_sectionAberrations).append(it.key()))) ;
}
double apertureAngle=n.readDouble(QString::QString(_sectionParameters).append(_idApertureAngle));
apertureAngleLE->setText(QString::number(apertureAngle));
double imageScale=n.readDouble(QString::QString(_sectionParameters).append(_idImageScale));
imageScaleLE->setText(QString::number(imageScale));
double beamEnergy=n.readDouble(QString::QString(_sectionParameters).append(_idBeamEnergy));
beamEnergyLE->setText(QString::number(beamEnergy));
}
nici
Hmm mir fällt nichts ein ^^
wie wärs mit
btw. wenn der user cancel drückt, drückt er cancel. dann bringt es nix einen namen beizubehalten. also einfach die rsestliche fkt skippen.
ich finde es pers. als guten stil wenn man direkt überprüft und bei fehlern(leerer string als übergabepara) die fkt sofort verlässt ohne grosses if else gemehre wo man net mehr durchblickt
Code: Alles auswählen
if (!filename.length()) return;ich finde es pers. als guten stil wenn man direkt überprüft und bei fehlern(leerer string als übergabepara) die fkt sofort verlässt ohne grosses if else gemehre wo man net mehr durchblickt
AuE hat geschrieben:wie wärs mitbtw. wenn der user cancel drückt, drückt er cancel. dann bringt es nix einen namen beizubehalten. also einfach die rsestliche fkt skippen.Code: Alles auswählen
if (!filename.length()) return;
ich finde es pers. als guten stil wenn man direkt überprüft und bei fehlern(leerer string als übergabepara) die fkt sofort verlässt ohne grosses if else gemehre wo man net mehr durchblickt
Code: Alles auswählen
!filename.isEmpty()
nici hat geschrieben:ich habe keinen debugger, ich benutze geany als entwicklungsumgebung, will mir aber eclipse runter laden.
Code: Alles auswählen
$ ~> ulimit -c unlimited
*nach dem programmabsturz*
$ ~> gdb [programmname] core
(gdb) bt [enter]
Code: Alles auswählen
$ ~> gdb [programmname]
(gdb) b datei.cpp:83
Breakpoint 1 at 0x804bc14: file datei.cpp, line 83.
(gdb) run
s = in die auszuführende Funktion reinspringen
q = beenden
r = programm starten
b = haltepunkt setzen
d = alle haltepunkte löschen
Ansonsten
Code: Alles auswählen
man gdb
ähm ich hab das selbe Problem mit save(). Also wenn ich kein Bild geladen habe, dann aber aus versehen auf save Picture gehe und dann cancel drück, schließt sich die Gui.
kann ich hier auch sowas wie "if (!filename.length()) return;" machen???
lg
nurc
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.section('.', -1)!=Dateiendung.section('.',-1))
{ //Dateiendung an den Namen hängen:
fileName.append(Dateiendung.section('*',-1));
}
imageLabel->pixmap()->save(fileName);
};lg
nurc
Hmm mir fällt nichts ein ^^