franzf hat geschrieben:Bei langen Listen ist das sicherlich kein so gutes Vorgehen, da die Parameter des SIGNALS komplett kopiert werden (Auch wenn die SIGNAL-Parameter mit ner Referenz definiert sind, AFAIK). Mit großen Objekte kostet das Zeit und Speicher.CLRS530 hat geschrieben:wenn das Signal von MainWindow gesetzt wird, kannst du die Liste doch einfach mit übergeben.
Prinzipiell geht sowas mit extern schon. Aber so weit ich weiß ist die Liste ein Member einer anderen Klasse. Da ist das mit extern nicht lösen.
Warum gibst du nicht das Objekt, welches die tupel-Liste als Member hat, deiner Klasse als Member, die dann auf die Elemente zugreifen will, als Pointer/Referenz? Damit kannst du jederzeit auf die Daten zugreifen, ohne kopieren zu müssen.Code: Alles auswählen
class opengldrawer : public QGLWidget { Q_OBJECT public: opengldrawer(dbvis* db); protected: dbvis* m_dbvis; };ch glaube die Klasse hies doch dbvis, oder?)
ah okay, ich glaube ich weis was du meinst, dass die klasse dann einfach einen zeiger auf den speicherbereich hast und damit dann auch einen zeiger auf diese liste!
ich weis nur nich wie ich das korrekt implementieren soll
Code: Alles auswählen
//opengldrawer.h
[...]
class opengldrawer : public QGLWidget
{
Q_OBJECT
public:
opengldrawer(QWidget *parent=0);
[...]
Code: Alles auswählen
#include "opengldrawer.h"
opengldrawer::opengldrawer(QWidget *parent)
: QGLWidget(parent)
{
[...]
anzeige = new opengldrawer(this);
ja meine oberfläche repräsentiert durch this dem fenster als ElternWidget! ich bin grad nur verwirrt, warum in meinem prototype des konstruktors der elternwidget auf 0 gesetzt wird, würde ja heißen dass das fenster unabhänigg meiner haupt GUI exisitert...
und wie mach ich das mit dbvis* er kennt diesen typ doch gar nicht?
hab das mit den pointern versucht aber mit dem Typ Widget klappt das nicht, da er ja objekte nicht als member von Widgets kennt...