sender() ?
Достать сендера можно в слоте через sender()
QToolButton *button = static_cast<QToolButton*>(sender()); вот так делаю, но крашится программа, если это делать из нативного меню на макос
Используйте лучше лямбду с захватом. Если у вас sender внезапно окажется не тем чем хочется то всякое может быть
Так посмотри реальный тип, который к тебе приходит в sender()
Проблема была в objectName) спасибо
connect(action, &QAction::triggered, this, [this, button]{mainMenuClicked(); И здесь у вас есть доступ к button}):
А как кнопку из ui туда передать?
Вам нужно захватить указатель на эту кнопку, и не важно где эта кнопка. Хотя наверное сделать это через ui будет не слишком удобно
QToolButton *btn = ui->myBtn; я вот так сделал - работает
Если ui простой то так...
А что значит простой? Можно так: QToolButton(ui->accountsButton)
Мы просто не используем редактор форм, вручную весь ui делаем. Простой в том смысле что у вас мало элементов и уровней вложенности
В таком случае можно qml использовать)
Так а как ее передать в mainMenuClicked? Чтобы внутри mainMenuClicked можно было получить с помощью sender()
Вам не нужно получать её с помощью sender если так делать. У вас есть указатель на нужную вам кнопку а уж что делать с ним, вам решать
Можно ограничиться и сендер, все зависит для чего кнопка. Ведь все манипуляции можно делать и через action
Можно конечно, но лямбда более универсальный вариант
Обсуждают сегодня