QSignalmapper: Widget einen Button zuordnen

Alles rund um die Programmierung mit Qt
Antworten
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

QSignalmapper: Widget einen Button zuordnen

Beitrag 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?
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag 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(....);
}
Antworten