Как передать QAction в слот Qt из QMenu

Я новичок в Qt, и у меня есть проблема, как передать QAction в качестве параметра, как этот код:

connect(fileToolBarAct, SIGNAL(toggled(bool)), this, SLOT(ToggleBar(fileToolBarAct));

И это моя функция слотов:

void MainWindow::ToggleBar(QAction& what)
{
what.isCheckable();
}

1

Решение

QObject::connect не работает так Вы не можете передавать объекты SIGNAL а также SLOT макросы. SIGNAL а также SLOT макросы должны принимать сигнатуры функций. К тому же the signature of a signal must match the signature of the receiving slot как описано в Qt документация.

Я вижу, что вам не хватает понимания механизма сигналов и слотов, и я рекомендую вам прочитать Qt Сигналы и Слоты документация для получения дополнительной информации. Чтение Qt Signals and Slots документация все прояснит для вас.

2

Другие решения

onnect(fileToolBarAct, SIGNAL(toggled(bool)), this, SLOT(ToggleBar(bool));void MainWindow::ToggleBar(bool checked)
{
QAction* action = qobject_cast<QOAction*>(sender());
if (action)
action->setChecked(checked);
}
0

По вопросам рекламы [email protected]