keyPressEvent QKeyEvent es gehen Zeichen verloren
Verfasst: 25. November 2022 12:08
Hallo zusammen,
habe an meinem Pi einen Leser angeschlossen welcher die Daten über die Tastaturschnittstelle sendet also über das QKeyEvent.
Das funktioniert auch wunderbar, bis ich in einem Label QMovie starte, Sobald das Video(kleines .gif) läuft gehen Daten verloren, mal am Anfang, mal in der Mitte, mal fehlt das Ende.
Dachte am Anfang es hätte vielleicht was mit dem Focus der Widgets zu tun, aber dann habe ich das QApplication::notify(..) genutzt
bool CMyApp::notify(QObject *receiver, QEvent *event)
{
try
{
if (event->type() == QEvent::KeyPress)
{
QKeyEvent * keyevent = dynamic_cast<QKeyEvent *>(event);
qDebug() << "Tastencode GO Text >>" << keyevent->text();
qDebug() << "Tastencode GO Key >>" << keyevent->key();
pMainWindow->MyKeyEvent(keyevent);
return(true);
...
aber auch dann gehen noch Daten verloren, daher habe ich nun die starke Vermutung, dass wenn QMovie ?läuft/startet? die Events unterbrochen werden.
So starte ich das Video:
if(pDisplayStart->psVideo == nullptr)
{
pDisplayStart->psVideo = new QMovie(":/Animation/Test.gif");
}
pDisplayStart->psVideo->setSpeed(80);
pDisplayStart->ui->labelSonstiges1->setMovie(pDisplayStart->psVideo);
pDisplayStart->psVideo->start();
Hat hier vielleicht jemand eine Idee, was das Problem sein kann bzw. wie das gelöst werden kann.
Gibt es vielleicht die Möglichkeit Prioritäten zu setzen? So das z.B. QKeyEvent Vorrang vor allen anderen Prozessen hat?
Danke und viele Grüße
Salva
habe an meinem Pi einen Leser angeschlossen welcher die Daten über die Tastaturschnittstelle sendet also über das QKeyEvent.
Das funktioniert auch wunderbar, bis ich in einem Label QMovie starte, Sobald das Video(kleines .gif) läuft gehen Daten verloren, mal am Anfang, mal in der Mitte, mal fehlt das Ende.
Dachte am Anfang es hätte vielleicht was mit dem Focus der Widgets zu tun, aber dann habe ich das QApplication::notify(..) genutzt
bool CMyApp::notify(QObject *receiver, QEvent *event)
{
try
{
if (event->type() == QEvent::KeyPress)
{
QKeyEvent * keyevent = dynamic_cast<QKeyEvent *>(event);
qDebug() << "Tastencode GO Text >>" << keyevent->text();
qDebug() << "Tastencode GO Key >>" << keyevent->key();
pMainWindow->MyKeyEvent(keyevent);
return(true);
...
aber auch dann gehen noch Daten verloren, daher habe ich nun die starke Vermutung, dass wenn QMovie ?läuft/startet? die Events unterbrochen werden.
So starte ich das Video:
if(pDisplayStart->psVideo == nullptr)
{
pDisplayStart->psVideo = new QMovie(":/Animation/Test.gif");
}
pDisplayStart->psVideo->setSpeed(80);
pDisplayStart->ui->labelSonstiges1->setMovie(pDisplayStart->psVideo);
pDisplayStart->psVideo->start();
Hat hier vielleicht jemand eine Idee, was das Problem sein kann bzw. wie das gelöst werden kann.
Gibt es vielleicht die Möglichkeit Prioritäten zu setzen? So das z.B. QKeyEvent Vorrang vor allen anderen Prozessen hat?
Danke und viele Grüße
Salva