hinzufügen und löschen von Qt objekten zur laufzeit

Alles rund um die Programmierung mit Qt
Antworten
cl90
Beiträge: 1
Registriert: 28. März 2014 12:42

hinzufügen und löschen von Qt objekten zur laufzeit

Beitrag von cl90 »

Hi!

Ich weiß nicht genau wie ich Objekte ordentlich löschen und neu hinzufügen kann. Vor allem wo und wie ich deletes setzen muss.
Das folgende funktioniert nur mies. Also das Adden klappt. Aber das clearen scheint nie richtig zu funktionieren.
Es geht um folgendes:

Code: Alles auswählen

void			FDSA :: addSubPlotable() {

	QGroupBox* group	= new QGroupBox("Titel");
	QHBoxLayout* layout	= new QHBoxLayout();

	QLabel*	label		= new QLabel("");

	layout->addWidget(label);
	group->setLayout(layout);
	ui->vLayoutPlotables->addWidget(group);
	m_SubPlotableCount += 1;
}

void			FDSA :: clearGUI() {
	_u16 count = ui->vLayoutPlotables->count();
	for(_u16 i = 0; i < count; i++) {
		QLayoutItem* item = ui->vLayoutPlotables->itemAt(i);
		ui->vLayoutPlotables->removeItem(item);
	}
}
Ich möchte mehrere dieser Gruppen in diesem Layout erstellen. Dazu rufe ich die AddSubPlotable Funktion auf.
Die ist Anzahl variabel und wird zur Laufzeit festgestellt und sie ändert sich auch zur Laufzeit.

Mag mir jemand sagen wie man das regelt?
Scary Hallo

Re: hinzufügen und löschen von Qt objekten zur laufzeit

Beitrag von Scary Hallo »

Bei QGroupBox , QHBoxLayout und QLabel kannst du beim Konstruktor einen Parent angeben. Wird dann dieser Parent gelöscht, werden automatisch die Child-Objekte mit gelöscht. Das wäre unter Qt der eleganteste Weg.
Antworten