SignalMapper macht Probleme



  • Hallo alle zusammen,

    mein Signalmapper, den ich definert habe, bringt mein Programm zum Absturz und ich weiß nicht so recht warum. Evt. seht ihr ja den Fehler.

    Ich definiere in der Header-Datei meinen SignalMapper:

    ...
    
    class QSignalMapper;
    
    class MySourceWindow: public QMdiSubWindow
    {
        Q_OBJECT
    
    ...
    
    private slots:
       void addToParameterList(QString);
    
    private:
       QSignalMapper* signalLineEdits;
    
    ...
    

    danach definier ich im Konstruktor meinen SignalMapper:

    ...
    
        signalLineEdits = new QSignalMapper(this);
        connect(signalLineEdits, SIGNAL(mapped(QString)), this, SLOT(addToParameterList(QString)));
    
    ...
    

    bis dahin hat mein Programm kein Problem. Aber kommen folgende Zeilen hinzu:

    void MySourceWindow::setSigmaGroupBox(QString illuType){
       qDebug("MySourceWindow::setSigmaGroupBox(%s) - Start", qPrintable(illuType));
    
       if(sigmaGroupBox){
          qDebug("MySourceWindow::setSigmaGroupBox() - delete sigmaGroupBox & buttonGroupBox");
          sourceMainLayout->removeWidget(sigmaGroupBox);
          sourceMainLayout->removeWidget(buttonGroupBox);
          delete buttonGroupBox;
          delete sigmaGroupBox;
       }
       if(otherGroupBox){
          qDebug("MySourceWindow::setSigmaGroupBox() - delete otherGroupBox");
          sourceMainLayout->removeWidget(otherGroupBox);
          delete otherGroupBox;
       }
       if(parameterList->contains("type")){
           int index = parameterList->indexOf("type");
          parameterList->removeAt(index);
          parameterList->removeAt(index);                           
        }
    
       sigmaGroupBox = new QGroupBox(tr("Sigma"));
       sigmaGroupBoxLayout = new QGridLayout();
    
       if(illuType == "circle"){
          parameterList->append("type");
          parameterList->append("circle");
          sigmaInnerLineEdit = new QLineEdit();
          sigmaGroupBoxLayout->addWidget(sigmaInnerLineEdit);
          sigmaGroupBox->setLayout(sigmaGroupBoxLayout);
          sourceMainLayout->addWidget(sigmaGroupBox);
    
          signalLineEdits->setMapping(sigmaInnerLineEdit,"sigmaInnerLE");
          connect(sigmaInnerLineEdit, SIGNAL(textChanged(QString)), signalLineEdits, SLOT(map()));
       }
    }
    

    Und da bricht das Programm dann ab. Das geht so schnell, dass meine Debug-Nachrichten, die ich überall eingebaut habe, nicht mehr geschrieben werden und ich damit nur vermuten kann, dass der Fehler an dieser Stelle auftritt. Wenn das setMapping und connect auskommentiert ist, läuft das Programm. Die Konsole spuckt auch keinen Fehler aus.

    Ich kann keinen Fehler entdecken Shocked Habt ihr eine Idee, woran es liegen könnte?

    Viele Grüße
    Jana


Anmelden zum Antworten