У меня есть такая проблема есть сигнал, есть слот, сигнал принимает QString слот не отправляет ничего, как сделать так что бы при подаче этого сигнала вызывался нужный слот и туда отправилось нужное значение QString
Вот код
connect(menuRecent_projects->actions()[a], SIGNAL(triggered()), this,
SLOT(openFileFromString(menuRecent_projects->actions()[a].text()))); //Вот нужный коннект
Лучше почитать маны. Сразу все вопросы пропадут.
Как вариант, если я правильно понял:
connect(openAction, SIGNAL(triggered()), this, SLOT(on_openAction_triggered()));
void MainWidow::on_openAction_triggered()
{
qDebug()<<openAtion->text();
}
Мне нужно было немножко другое, но я уже сам справился
void RizekQssEditor::openFileByActionClicked()
{
openFileFromString(menuRecent_projects->activeAction()->text());
}
Но с помощью промежуточного слота, а я как раз и спрашивал как без него
Но все равно большое спасибо за помощь!
Попробовал свой вариант - выдает ошибку, странно, почему , говорит что недостаточно прав для чтения
1)
qDebug()<<menuRecent_projects->activeAction()->text()
2) Почему вы просто не пишете:myAction->text();
Как вы его создаете?
menuRecent_projects->activeAction()->text()
неправильно.void RizekQssEditor::openFileByActionClicked()
{
QObject *o = sender(); // Узнаем какой объект отправил сигнал (вызвал слот)
QAction *a = qobject_cast<QAction *>(o); // попробуем привести тип этого объекта к ожидаемому (QAction)
if (a)
openFileFromString(a->text()); // если приведение типа удалось, то вызовим нужный метод ожидаемого объекта.
}
Большое спасибо за помощь!
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)