Speicherzugriffsfehler bei Zugriff auf Element

Alles rund um die Programmierung mit Qt
Antworten
needle
Beiträge: 33
Registriert: 28. September 2004 14:38
Kontaktdaten:

Speicherzugriffsfehler bei Zugriff auf Element

Beitrag von needle »

Hallo,

ich habe im Designer (QT 3.23) ein Widget erzeugt und in dem ui.h eine von QTable abgeleitete Tabelle eingefügt.

das kompilieren läuft soweit durch, doch irgendwas scheint nicht zu passen, da wenn ich aus dem Widget auf die Tabelle zugreife, dann gibt es einen Speicherzugriffsfehler.

Ich schätze mal, dass ich auf das falsche Objekt zugreife.
Aber warum ?

Wer kann mir da einen Tipp geben ?

vielen Dank im Voraus,

Needle

Code:

Code: Alles auswählen

// form1.ui.h

#include <qtable.h>
#include <qobject.h>

#include "mytable.h"

myTable *Tabelle;

void Form1::init()
{
	myTable *Tabelle = new myTable(this);
	Tabelle->setGeometry(10,40,400,400);
	Tabelle->setNumRows(5);
	Tabelle->setNumCols(5);
	return;
}


void Form1::doSlot()
{
	for ( int x =0 ; x < 4 ; x++)
	{
		for (int y = 0 ; y < 4 ; y++)
		{
			Tabelle->setText( x,y, "FILLED");
		}
	}
	return;
}
ein Buttondruck springt zurr Laufzeit doSlot() an und es wird auf die Tabelle zugegriffen.
genau dann gibts es den Speicherzugriffsfehler... :-(

Code: Alles auswählen

// mytable.h
#ifndef MYTABLE_H
#define MYTABLE_H

#include <qtable.h>

class myTable : public QTable 
{
	Q_OBJECT
public:
	myTable ( QWidget * parent = 0 , const char * name = 0 );
	~myTable ();
};
#endif

Code: Alles auswählen

// mytable.cpp
#include "mytable.h"

myTable::myTable(QWidget *parent, const char *name)
		: QTable ( parent , name )
{
};

myTable::~myTable()
{
};

Zuletzt geändert von needle am 21. Februar 2006 14:39, insgesamt 1-mal geändert.
Im Handbuch stand: 'Anforderung: Windows XP oder besser'
... also hab ich Debian installiert :-)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Speicherzugriffsfehler bei Zugriff auf Element

Beitrag von macman »

needle hat geschrieben:das kompilieren läuft soweit durch, doch irgendwas scheint nicht zu passen, da wenn ich aus dem Widget auf die Tabelle zugreife, dann gibt es einen Speicherzugriffsfehler.
Weil deine Tabelle nur in init bekannt ist. Deklarier den Pointer auf die Tabelle in der Form1.h, die Zuweisung wie bisher.
needle
Beiträge: 33
Registriert: 28. September 2004 14:38
Kontaktdaten:

Re: Speicherzugriffsfehler bei Zugriff auf Element

Beitrag von needle »

macman hat geschrieben:
needle hat geschrieben:das kompilieren läuft soweit durch, doch irgendwas scheint nicht zu passen, da wenn ich aus dem Widget auf die Tabelle zugreife, dann gibt es einen Speicherzugriffsfehler.
Weil deine Tabelle nur in init bekannt ist. Deklarier den Pointer auf die Tabelle in der Form1.h, die Zuweisung wie bisher.
aber die form1.h wird ja vom Designer aus der form1.ui.h erzeugt - ist das nicht unklug ?
Im Handbuch stand: 'Anforderung: Windows XP oder besser'
... also hab ich Debian installiert :-)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Speicherzugriffsfehler bei Zugriff auf Element

Beitrag von macman »

needle hat geschrieben:aber die form1.h wird ja vom Designer aus der form1.ui.h erzeugt - ist das nicht unklug ?
Ach Qt3, da sollte man sowas unterlassen. Das war aber deiner Anfrage auch nicht zu entnehmen.

Das Prinzip sollte jetzt aber klar sein, wenn Du mit mehreren Methoden deiner Klasse auf eine Variable zugreifen willst, dann muß die Variable auch in der Klasse deklariert werden und nicht in einer Methode. Frag mich aber nicht wie das mit dem Designer ging, den hab ich nie zum coden benutzt.
Antworten