Von MainWindow auf das ui eines Dialoges zugreifen

Alles rund um die Programmierung mit Qt
Antworten
warhero68
Beiträge: 5
Registriert: 14. Januar 2023 10:03

Von MainWindow auf das ui eines Dialoges zugreifen

Beitrag 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
warhero68
Beiträge: 5
Registriert: 14. Januar 2023 10:03

Re: Von MainWindow auf das ui eines Dialoges zugreifen

Beitrag 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.
Antworten