Seite 1 von 1

Model an Dialogform übergeben

Verfasst: 21. Juni 2017 11:20
von pschnot1000
Hallo,

Ist es möglich eine Tabelle in einem Dialog Fenster zu erstellen und diese komplett mit Inhalt an das Hauptfenster zu übergeben.
Wie macht man das? Ich hab versucht, ein mittels QStandardItemModel erstelltes model an das mainwindow zu übergeben. bin jedoch noch zu keinem ergebniss gekommen. Obwohl ich denke, dass das ein richtiger Weg ist.
Wie könnte ich so ein model denn übergeben?

Grüße

Re: Model an Dialogform übergeben

Verfasst: 21. Juni 2017 13:01
von pschnot1000
Ich hab noch ein weiteres Problem. Wenn ich von einem zweiten Fenster aus, auf eine Funktion im Hauptfenster zugreife, welche Veränderung in der Gui vornimmt. Wird das aktuelle Hauptenster (gui) nicht aktualisiert, obwohl die restlichen Befehle auch ausgeführt werden.
Ich hab versucht das layout zu updaten, aber bis jetzt kein Ergebnis. Ich glaub das ist auch die Lösung zu dem oberen Problem, da ich denke das ich das Model richtig übertrage, dass Fenster aber nicht geupdatet wird.

Re: Model an Dialogform übergeben

Verfasst: 21. Juni 2017 14:59
von pschnot1000
Habe das Problem mit Signal and Slots gelöst.
Und die Datenübertragung funktioniert.
Das einzige, dass ich jetzt noch nicht verstanden hab, ist die Übertragung von pointern. Das verwirrt manchmal sehr.

Grüße

Re: Model an Dialogform übergeben

Verfasst: 22. Juni 2017 08:01
von pschnot1000
Hallo.
Also das QStandardModel bekomm ich nicht transferiert von einer Form in die andere.

folgenden Code verwende ich:

Signal - Slot:

Code: Alles auswählen

Pattern_creator pattern_creator(colorNames);
QObject::connect(&pattern_creator, SIGNAL(valueChanged(int,int,QStandardItemModel*)), this, SLOT(PatternCreator(int,int,QStandardItemModel*)));
Die Funktion:;

Code: Alles auswählen

void Pattern::PatternCreator(int row, int column, QStandardItemModel *model_test)
{
    ui->tableView_test->setModel(model_test);
	.
	.
	.
}
Im Dialog:

Code: Alles auswählen

emit valueChanged(row_pattern, column_pattern, model_pattern_creator);
Im Dialog Header :

Code: Alles auswählen

signals:
void valueChanged(int row_pattern,int column_pattern, QStandardItemModel *model_pattern_creator );
Kann mir bitte einer mit den Pointern helfen?
Ich hab ein wenig rumprobiert, aber zum Ziel bin ich noch nicht gekommen.

Re: Model an Dialogform übergeben

Verfasst: 22. Juni 2017 17:31
von Christian81
Wie man einen Pointer von einer Klasse an eine andere übergibt hat nix mit Qt zu tun, eher mit den absoluten Grundlagen von C++, siehe auch viewtopic.php?f=14&t=18425

Re: Model an Dialogform übergeben

Verfasst: 26. Juni 2017 08:48
von pschnot1000
Ich finde deine Kritik wiedereinmal nicht sehr konstruktiv, bei dir hat man immer das Gefühl, dass du dich null dafür interessierst, Hauptsache du kannst einen arroganten Zweizeiler schreiben. Zudem funktioniert das übergeben des Pointers an die Funktion intern problemlos, jedoch wenn ich es über die SIGNAL/SLOT Connection probiere nicht. Mag sein, dass ich was mit Pointern noch nicht richtig verstanden habe, aber bei der Anwendung ohne die Connection von einer zweiten Form, funktioniert es. Bei QT und SIGNAL/SLOTS bin ich aber neu, so dass es da auch Vorkommen kann, dass man etwas noch nicht weiß oder verwechselt, weil mans einfach noch nicht gemacht hat.