kartun
4th February 2011, 14:33
I've this code ... stripped a bit
void testform::keyPressEvent(QKeyEvent *event)
{
switch (event->key())
{
case Qt::Key_4 :
if (!demo_started)
{
this->buttons[0]->setPixmap(QPixmap::fromImage(images[1]));
this->listener = new PortListener(portName);
// So, connect to listener, and ... all happy :P
connect(this->listener,SIGNAL(packet_received(data_answer)),
this,SLOT(packet_received(data_answer)));
}
else
{
this->buttons[0]->setPixmap(QPixmap::fromImage(images[0]));
this->killTimer(demo_timer_id)
}
demo_started = !demo_started;
break;
...................................
default : QWidget::keyPressEvent(event);
}
}
and receiver SLOT:
void testform::packet_received(data_answer answer)
{
qDebug() << "pewpew all dead !";
redrawUI();
}
Problem is that this slot called only when I move mouse,press key etc. But signal itself emmited every 0.5 seconds (read data from com-port). Listener class is quite stable and works as intended.
void testform::keyPressEvent(QKeyEvent *event)
{
switch (event->key())
{
case Qt::Key_4 :
if (!demo_started)
{
this->buttons[0]->setPixmap(QPixmap::fromImage(images[1]));
this->listener = new PortListener(portName);
// So, connect to listener, and ... all happy :P
connect(this->listener,SIGNAL(packet_received(data_answer)),
this,SLOT(packet_received(data_answer)));
}
else
{
this->buttons[0]->setPixmap(QPixmap::fromImage(images[0]));
this->killTimer(demo_timer_id)
}
demo_started = !demo_started;
break;
...................................
default : QWidget::keyPressEvent(event);
}
}
and receiver SLOT:
void testform::packet_received(data_answer answer)
{
qDebug() << "pewpew all dead !";
redrawUI();
}
Problem is that this slot called only when I move mouse,press key etc. But signal itself emmited every 0.5 seconds (read data from com-port). Listener class is quite stable and works as intended.