Уже столько раз это делал и всегда получалось, а тут.. вообщем не могу понять в чём дело. Имеем класс 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')
Может кто подскажет что не так???
Заранее спасибо!!!