Я пытаюсь создать функцию, которая покажет виджет в зависимости от переданного ему QWidget.QWidget через слот
у меня есть:
position_widget = new positionWidget();
timing_widget = new timingWidget();
...
void MainWindow::showScreen(QWidget *w)
{
ui->screenWidget->layout()->addWidget(w);
w->show();
}
void MainWindow::doConnects()
{
QObject::connect(buttons_widget, SIGNAL(showPositionScreen_signal()), this, SLOT(showScreen(position_screen)));
QObject::connect(buttons_widget, SIGNAL(showTimingScreen_signal()), this, SLOT(showScreen(timing_screen)));
}
Ничего не происходит, когда я нажимаю на кнопку, и он приходит с 'Нет такой слот MainWindow :: ShowScreen (timing_screen)'
Это должно быть 'SLOT (showScreen (QWidget *))' вместо – vahancho
Используйте автозаполнение Qt Creator для завершения сигналов и слотов, особенно с помощью соединений стиля ole (с использованием макросов SIGNAL и SLOT). Предпочитаете, что новый стиль соединяется с ошибкой компиляции, если вы ошибаетесь. – hyde
@thuga, используя значение, а не тип для макроса слота, похоже на вопрос, который вы указали, но есть также проблема с несоответствием аргументов в его сигналах и слотах. – tobilocker