Перегрузка слота. qt

Мне кажется что вопрос глупый, но всё же спрошу. Как правильно перегрузить QAbstractButton::clicked().Но я не уверен что мне это действительно нужно.

connect(addBtn, SIGNAL(clicked()), this, SLOT(MainWindow::addTimerBtn(timeEdit,textEdit)));

Я решил воспользоваться данной строчкой кода, чтобы привязать слот к сигналу. Но я так понимаю что сигнал должен быть тоже написан мной? Изначально я хотел сделать это не через connect, но просто через условие if. Будьте добры, подскажите как правильно


Ответы (1 шт):

Автор решения: megorit

Я думаю, что вы что-то не то пишите.

  • Во-первых, connect() с макросами уже давно устарел. Он должен выглядеть как-то так: connect(ptr2btn,&QPushButton::clicked,this,&MyClass::mySlot);
  • Во-вторых, перегружать стандартный сигнал не за чем. Сигнал clicked() реализован MOC. Реализация зависит от платформы. Сигнал - не более чем прототип, у него не должно быть реализации.

PS: Вот так:

  • Соединяете как обычно сигнал со слотом: connect(ptr2btn,&QPushButton::clicked,this,&MyClass::mySlot_1);
  • Определяете кастомный сигнал: mySignal(Type_1,Type_2);
  • В mySlot_1 вызываете emit mySignal(param_1,param_2);, который должен быть связан с mySlot_2.
  • Или тоже самое лямбдой.

Обычно так не делается. Но я не знаю, какую цель вы преследуете, поэтому - что просили.

→ Ссылка