我以为我开始明白这一点,但似乎没有。无法连接到家长插槽
我正在尝试将堆叠的小部件连接在一起,以便孩子可以向父母发送消息以告知其更改视图。 QStackedWidget是主窗口的子项,它的页面是我自己创建的促销项目。我认为这是正确的做法吗?
左右的时间内一个孩子形成我试过如下:
// Set up a mapping between the buttons and the pages
QSignalMapper *mapper = new QSignalMapper(this);
mapper->setMapping(ui->automatedButton, 1); // Value of the index
connect(ui->automatedButton, SIGNAL(clicked()), mapper, SLOT(map()));
connect(mapper, SIGNAL(mapped(int)), ((QStackedWidget*)parentWidget()), SLOT(setCurrentIndex(int)));
但是,这似乎并没有工作。我点击按钮,没有任何变化。但是,如果我这样做:
void MySelectionForm::on_automatedButton_clicked()
{
((QStackedWidget*)parentWidget())->setCurrentIndex(1);
}
我以为和我以前做的一样吗?
QObject::connect: Cannot connect QSignalMapper::mapped(int) to (null)::setCurrentIndex(int)
啊,这是非常有用的。我将表单从设计器中移出,并在MainWindow构造函数中手动添加它们,将父项设置为堆叠容器,现在按预期方式工作。可能还有另外一种方法可以通过设计师来完成,但现在可以直到我解决问题,所以谢谢! – Firedragon