Seite 1 von 1

QSignalmapper: Widget einen Button zuordnen

Verfasst: 25. Mai 2010 16:50
von AuE
Hi,

stehe grade vor folgendem Problem:
ich habe ein Stacked Widget in welches ich Seiten einfüge.
Bei jeder neuen Seite lege ich gleichzeitig einen neuen Button mit an.

Button und StackedWidget sind via SignalMapper verbunden.

Jetzt bin ich grade dabei herauszufinden wie ich das StackedWidget mit dem Button verbinden kann....

Code: Alles auswählen

void MainWindow::addNewWidget(QWidget *w)
{
	QPushButton *btn = new QPushButton(w->windowTitle(),this);
	ui->groupBox->layout()->addWidget(btn);

	int index = ui->stackedWidget->insertWidget(-1, w);

	connect(ui->stackedWidget, SIGNAL(currentChanged(int)), mapperPageToButton, SLOT(map()));

	mapperPageToButton->setMapping(ui->stackedWidget, btn);
};

	ui->comboBox->addItem(QString::number(index));

}
Das Problem ist nur das ich ja diese Verbindung immer wieder Überschreibe... hat jmd von euch da eine Idee?

Verfasst: 25. Mai 2010 17:53
von solarix
http://doc.qt.nokia.com/4.6/qsignalmapper.html#details hat geschrieben: This class collects a set of parameterless signals, and re-emits them with integer, string or widget parameters corresponding to the object that sent the signal.
Ein SignalMapper mappt nicht ein Sender auf mehrere Empfaenger sondern umgekehrt (viele Sender auf einen Empfaenger).

Tut's nicht auch einfach ein Slot in der MainView , welcher die (evt. gesammelten) Buttons behandelt?

Code: Alles auswählen

void MainWindow::stackChanged(int index) {
  Q_ASSERT(mButtonList.count() > index);
  mButtonList[index]->tuwas(....);
}