Hallo, ich öffne aus ein QMainWindow über das Menü ein QDialog. In dem QDialog geben ich einige Daten ein, die dann verarbeitet werden. Nach der Verarbeitung innerhalb des QDialoges möchte ich den Text von QLabel, weches sich in QMainWindow befindet ändern.
Wie bekomme ich Zugriff von dem QDialog auf Elemente von QMainWindow?
Ich habe mir gedacht das ich ein Pointer von meiner QMainWindow-Klasse an den QDialog übergeben muss, nur weiß ich nicht wie ich das machen muss.
Hat da jemand einen Tipp für mich?
so long
jd
Zugriff von QDialog auf Elemente von QMainWindow
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ok das habe ich gemacht, aber nicht in meinen Kopf geht, warum kann ich von außen nicht auf Public-Methoden zugreifen?
So in meiner QMainWindow Klasse mach ich folgendes:
Ich bekomme die Meldung:
class QDialog’ has no member named ‘getServerInfo
Wieso class QDialog? ich habe doch ein Object von CDialogConnect, was lediglich von QDialog erbt.
Code: Alles auswählen
class CDialogConnect : public QDialog, private Ui::DialogConnect {
Q_OBJECT
public:
CDialogConnect();
~CDialogConnect();
QString getServerInfo();
}
Code: Alles auswählen
void CMainWindow::openDialogConnect() {
connectDialog = new CDialogConnect;
do {
connectDialog->show();
} while (!connectDialog->Accepted);
if (connectDialog->Accepted) {
QString request = connectDialog->getServerInfo() );
}
}
class QDialog’ has no member named ‘getServerInfo
Wieso class QDialog? ich habe doch ein Object von CDialogConnect, was lediglich von QDialog erbt.
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
Problem gelöst:
Peter dein Verdacht war richtig.
Danke euch allen
Code: Alles auswählen
connectDialog = new CDialogConnect;
QString requestInfo;
if (connectDialog->exec() == CDialogConnect::Accepted) {
QMessageBox::information(this, tr("FromMain"), connectDialog->getServerInfo());
}
Danke euch allen