fehler nach beenden
Verfasst: 3. März 2011 17:23
hi, hab folgenden dialog geschriebe
Header
Cpp
funktioniert auch, nur sobald ich das fenster schließe sei es über den ok button oder über das x, bekomme ich die meldung ...exe funktioniert nicht mehr!
das problem tritt erst auf, wenn ich den abortButton einfüge, lasse ich ihn aus, wird das programm vernünftig beenden, kann mir den grund iwie nicht erklären!
Header
Code: Alles auswählen
#ifndef ADDFILESDIALOG_H
#define ADDFILESDIALOG_H
#include <QDialog>
#include <QTableWidget>
#include <QPushButton>
#include <QVBoxLayout>
#include <QFileDialog>
#include <QTableWidgetItem>
#include <QStringList>
class addFilesDialog : public QDialog
{
Q_OBJECT
public slots:
void pressAddButton();
public:
addFilesDialog();
private:
QTableWidget *tableWidget;
QPushButton *addButton;
QPushButton *confirmButton;
QPushButton *abortButton;
void createButton();
void setButtonSlots();
};
#endif // ADDFILESDIALOG_H
Code: Alles auswählen
#include <addFilesDialog.h>
addFilesDialog::addFilesDialog()
{
QHBoxLayout *hLayout = new QHBoxLayout(this);
QVBoxLayout *vLayout = new QVBoxLayout;
QWidget *widget = new QWidget;
tableWidget = new QTableWidget(this);
createButton();
setButtonSlots();
vLayout->addWidget(addButton);
vLayout->addWidget(confirmButton);
vLayout->addWidget (abortButton);
vLayout->setAlignment(Qt::AlignTop);
vLayout->addStretch();
widget->setLayout(vLayout);
hLayout->addWidget(tableWidget);
hLayout->addWidget(widget);
}
//Trägt die über ein OpenDialog ausgewählten FIles in eine QTableWidget ein
void addFilesDialog::pressAddButton()
{
int j = 0;
QStringList list;
QFileDialog *dialog = new QFileDialog;
dialog->setViewMode(QFileDialog::Detail);
dialog->setFileMode(QFileDialog::ExistingFiles);
dialog->exec();
list = dialog->selectedFiles();
QStringList::Iterator i;
tableWidget->setColumnCount(1);
tableWidget->setRowCount(list.length());
i = list.begin();
while (!list.empty())
{
i = list.begin();
QTableWidgetItem *item = new QTableWidgetItem(list.first());
tableWidget->setItem(j,0,item);
list.removeFirst();
j++;
}
}
//Inititalisiert Buttons
void addFilesDialog::createButton()
{
addButton = new QPushButton(tr("Hinzufügen"),this);
confirmButton = new QPushButton (tr("OK"),this);
abortButton = new QPushButton (tr("Abbruch"),this);
}
//Weist den Buttons Slots zu
void addFilesDialog::setButtonSlots()
{
connect(addButton,SIGNAL(clicked()),this,SLOT(pressAddButton()));
connect(confirmButton,SIGNAL(clicked()),this,SLOT(close()));
}
funktioniert auch, nur sobald ich das fenster schließe sei es über den ok button oder über das x, bekomme ich die meldung ...exe funktioniert nicht mehr!
das problem tritt erst auf, wenn ich den abortButton einfüge, lasse ich ihn aus, wird das programm vernünftig beenden, kann mir den grund iwie nicht erklären!