solarix hat geschrieben:Mit diesen Angaben kann man nur oraceln..
- Hast du solche Ausgaben auch bei Qt-Demos?
Nein, da läuft alles wunderbar.
Auch das Programm läuft eigentlich sonst so wie es sollte.
solarix hat geschrieben:- Kannst du das Problem im kleinen Rahmen reproduzieren und den Code dazu zeigen?
Beim zweiten ausführen dieses Codes tritt das Problem auf:
Code: Alles auswählen
bool InterModule::getRange(int& a, int& b) {
Vec2i range;
RangeDialog rd(NULL, a,b);
if (rd.exec() == QDialog::Accepted) {
range = rd.getRange();
a = range.x();
b = range.y();
return true;
}
else
return false;
}
wobei RangeDialog so aussieht:
Code: Alles auswählen
#include "rangeDialog.h"
//Added by qt3to4:
#include <Q3GridLayout>
RangeDialog::RangeDialog(QWidget *parent, int lowVal, int highVal) : QDialog (parent,0,TRUE) {
//QIntValidator v(lowVal, highVal, this);
QString num;
lowEdit = new QLineEdit(this);
highEdit = new QLineEdit(this);
lowEdit->setMaxLength(3);
//lowEdit->setValidator(&v);
num.setNum(lowVal);
lowEdit->setText(num);
highEdit->setMaxLength(3);
//highEdit->setValidator(&v);
num.setNum(highVal);
highEdit->setText(num);
lay = new Q3GridLayout(this,2,2);
layout()->add(lowEdit);
layout()->add(highEdit);
_ok = new QPushButton("Ok",this);
_ok->setDefault(true);
connect(_ok,SIGNAL(clicked()), this, SLOT(accept()));
_cancel = new QPushButton("Cancel",this);
connect(_cancel,SIGNAL(clicked()), this, SLOT(reject()));
layout()->add(_ok);
layout()->add(_cancel);
setAttribute(Qt::WA_NativeWindow);
}
Vec2i RangeDialog::getRange() const {
bool ok;
Vec2i res;
QString out = lowEdit->text();
res.set_x(out.toInt(&ok));
assert(ok);
out = highEdit->text();
res.set_y(out.toInt(&ok));
assert(ok);
//assert(res.x() >= lowVal && res.y() <= highVal);
return res;
}
Das Seltsame:
An anderen Stellen wird dieser Abschnitt auch aufgerufen, da funktioniert das Ganze auch nach mehrmaligen aufrufen noch wunderbar!!