Здравствуйте.
У меня такая проблемка. Приведу листинг программки:
//////////////////
#include <qtimer.h>
#include <qstring.h>
#include <qapplication.h>
#include <qobject.h>
class myMain: public QObject
{
Q_OBJECT
public:
myMain(QString &);
~myMain();
private slots:
void sendRequest(const QString &);
};
myMain::myMain(QString &s)
{
sendRequest(s);
}
myMain::~myMain()
{
}
void myMain::sendRequest(const QString &s)
{
QString str=s+"-Ok";
qWarning(str);
QTimer *t=new QTimer(this);
t->start(5000, TRUE);
connect(t ,SIGNAL(timeout()), this, SLOT(sendRequest( str )) );
}
int main(int argc, char **argv)
{
QApplication app( argc, argv );
QString a("Test");
myMain m_main(a);
return app.exec();
}
#include "main.moc"
/////////////////
После компиляции запускаю:
%./test
test-Ok
QObject::connect: No such slot myMain::sendRequest(str)
QObject::connect: (sender name: 'unnamed')
QObject::connect: (receiver name: 'unnamed')
Так вот что у меня вопрос: что ей здесь не нравится?
И еще один: если так нельзя, то каким образом можно после истечения таймера( SIGNAL(timeout()) ) вызвать слот sendRequest() с теми параметрами какие я хочу, например, sendRequest("sendRequest called!!!")?