LINUX.ORG.RU

Не могу связать сигнал со слотом!!!


0

0

Уже столько раз это делал и всегда получалось, а тут.. вообщем не могу понять в чём дело. Имеем класс kmms (не производный) в нём создаётся два объекта класса kmmswindow (производный от QWidget)

---------------------------------------------------------------------
QWidget* kmms::createWindow()
{
kmmswindow * mw = new kmmswindow(MW);
mw->move(50,50);
mw->show();

kmmswindow * control = new kmmswindow(CONTROL);
control->move(50,199);
control->show();

return mw;
}
---------------------------------------------------------------------

функция возвращает QWidget для того что бы можно было указать главный виджет, создание обьекта класса kmms происходит в main.cpp.

Далее, появляются как и положено два виджета (не окна).

Каждый виджет при построение вызывает конструктор:
---------------------------------------------------------------------
kmmswindow::kmmswindow(int tp, int flags)
: QWidget(0, 0, flags)
{
type = tp;
kmmsSetScin();

QPushButton *b = new QPushButton(this);
b->show();
b->setText("test");
connect(b,SIGNAL(clicked()),this,SLOT(act));
}
---------------------------------------------------------------------

в хидере оюбявлен слот act
...
private slots:
void act();
...

описан так

void kmmswindow::act()
{
QMessageBox::information( this, "Application name",
"Unable to find the user preferences file.\n"
"The factory default will be used instead." );
}

Всё бы хорошо, но при запуске выясняется что сигнал и слот не связаны:

./kmms
QObject::connect: Parentheses expected, slot kmmswindow::act
QObject::connect: (sender name: 'unnamed')
QObject::connect: (receiver name: 'unnamed')
QObject::connect: Parentheses expected, slot kmmswindow::act
QObject::connect: (sender name: 'unnamed')
QObject::connect: (receiver name: 'unnamed')

Может кто подскажет что не так???

Заранее спасибо!!!

★★★★★

Re: Не могу связать сигнал со слотом!!!

Не вникая:

-- connect(b,SIGNAL(clicked()),this,SLOT(act));

++ connect(b,SIGNAL(clicked()),this,SLOT(act()));

olegk ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.