попробовал всё вместе, не выходит (не переходит при нажатии в clickAction)
:
C++ (Qt)
theSignalMapper = new QSignalMapper(this);
connect(theSignalMapper, SIGNAL(mapped(QWidget *)),
this, SLOT(clickAction(QWidget *)));
for (i = 0; i < n; i++) {
testButton = new QPushButton(QString::number(i));
theSignalMapper->setMapping(testButton, QString::number(i));
connect(testButton, SIGNAL(clicked()), theSignalMapper, SLOT(map()));
theLayout->addWidget(testButton, i/3, i%3, Qt::AlignTop);
}
C++ (Qt)
void TheClass::clickAction(QWidget *w) {
qDebug() << "clicked";
QPushButton * currentButton = qobject_cast<QPushButton *>(w);
if (currentButton != 0) {
theAction(currentButton);
}
else {
Q_ASSERT(currentButton != 0);
}
}
это первая проблема.
вторая: хотел сделать ряд кнопок в лэйауте (назовем его л0), при нажатии которых появляется какой-нибудь лэйаут (этот пусть будет л1) с виджитами, допустим имя кнопки и еще одна кнопка. и вот нажав на появившуюся кнопку должен появиться еще один лейаут (л2) с кнопкой, который перенес бы информацию о самой первой кнопке (которая находится в л0). после нажатия на кнопку из л2, должен появитсья еще один лэйаут с кнопкой, передающей инфомрацию о копке из л0 и т. д. рекурсия в общем
как такое сделать? некоторые попытки уже были, но заканчивались они плачевно/
заранее спасибо за помощь