Seite 1 von 1

Von MainWindow auf das ui eines Dialoges zugreifen

Verfasst: 16. Januar 2023 13:27
von warhero68
Hallo!

Ich möchte vom MainWindow aus auf das Ui des Dialogs zugreifen. Das geht aber nicht, da Ui privat ist.
Auch wen ich auf ein Funktion im Dialog zugreifen möche (von MainWindow aus) geht es nicht. Der Compiler geht zwar durch, aber das Progamm stürzt ab.

Hier das DlgWin.h:

Code: Alles auswählen

class DlgWin : public QDialog
{
    Q_OBJECT

public:
    explicit DlgWin(QWidget *parent = nullptr);
    ~DlgWin();
    
    QString getEdFind();
 
private:
    Ui::DlgWin *ui;
};
Hier das DlgWin.cpp:

Code: Alles auswählen

#include "dlgwin.h"
#include "ui_dlgwin.h"

DlgWin::DlgWin (QWidget *parent) :
    QDialog(parent),
    ui(new Ui::DlgWin )
{
    ui->setupUi(this);
    connect(ui->btFind, SIGNAL(clicked()), this, SLOT(accept()));

}

QString DlgWin::getEdFind()
{
    QString findStr = ui->edFind->text();
    return findStr;
}
Hier ein Ausschnitt aus MainWindow.cpp:

Code: Alles auswählen

void MainWindow::Test()
{
	DlgWin *dlg = new DlgWin(this);
	
	int dc = dlg->exec();

    	if(dc == QDialog::Accepted)
    	{
        	QString searchString = dlg->getEdFind();
        	QMessageBox::warning(this,"Test",searchString);
       }
}
Ich hoffe ihr könnt mir helfen.

mfg

Re: Von MainWindow auf das ui eines Dialoges zugreifen

Verfasst: 17. Januar 2023 08:25
von warhero68
Hallo!

Ich wolte nur darauf hinweisen, dass der QTCreator Editor die Funktion dlg->getEdFind() anzeigt. Das Programm stürtz ab mit folgender Meldung:

Der Prozess wurde wegen eines Signals vom Betriebssystem angehalten.
Name des Signals : SIGSEGV
Bedeutung : Segmentation fault

mfg

EDit: Hat sich erledigt. Hat an dlg->setAttribute(Qt::WA_DeleteOnClose) gelegen.