Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » KDevelop / Qt / wxWidget » Brauche Hilfe beim Abfragen der Pfeiltasten unter Linux!!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.11.2003, 22:25 Uhr
~Chris
Gast


Hi,
Ich möchte gern ein grafisches Programm programmieren, das auf Tastatureingaben (speziell die Pfeiltasten) reagiert und habe dabei folgendes Problem:
Der Programmteil unten reagiert zwar auf drücken und loslassen einer Pfeiltaste und speichert den Zustand in den vier Variablen (vor, zurueck, links, rechts), aber wenn die Taste länger gedrückt bleibt, wechselt die Variable, in der der Zustand der Taste gespeichert wird immer zwischen true und false hin und her! Da ich damit ein Relaisinterface am Parallelport ansteuern möchte, schalten dann die Relais entsprechend auch immer hin und her! Kann man das Problem irgendwie lösen? Außerdem sollten auch zwei Pfeiltasten gleichzeitig gedrückt werden können! Dann sollten die Zugehörigen Variablen (z.B. vor und links) auf true gesetzt werden und solange auf true bleiben bis man die Taste(n) wieder loslässt.

Ich hoffe mir kann da jemand helfen (vielleicht mit Beispielcode, da ich noch Programmier-Anfänger bin).
Ich arbeite unter Linux mit C++, KDevelop und Qt.

mfg Chris



C++:
// Funktion wird automatisch bei jedem Tastendruck aufgerufen & prueft welche Taste gedrueckt wurde

void Taste::keyPressEvent( QKeyEvent *e )
{
  e->accept();                                            // Annehmen des KeyEvents

  switch ( e->key() )
  {                                          
    case Key_Left: links = true; break;              // links gedueckt?
    case Key_Right: rechts = true; break;          // rechts gedueckt?
    case Key_Up: vor = true; break;                 // oben gedueckt?
    case Key_Down: zurueck = true; break;       // unten gedueckt?
    default: e->ignore();                          // keine relevante Taste gedrueckt
  }
}

// Funktion wird automatisch beim Loslassen einer beliebigen Taste aufgerufen & prueft welche Taste losgelassen wurde

void Taste::keyReleaseEvent( QKeyEvent *e )
{
  e->accept();                                            // Annehmen des KeyEvents

  switch ( e->key() )
  {                                          
    case Key_Left: links = false; break;           // links losgelassen?
    case Key_Right: rechts = false; break;       // rechts losgelassen?
    case Key_Up: vor = false; break;              // oben losgelassen?
    case Key_Down: zurueck = false; break;    // unten losgelassen?
    default: e->ignore();                         // keine relevante Taste losgelassen
  }
}



--edit: Pablo. [ cpp ] tags gesetzt --

Dieser Post wurde am 06.11.2003 um 13:08 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.11.2003, 12:07 Uhr
~cmos
Gast


Hast du's schonmal mit SDL probiert ?
Schau mal bei NeHe danach.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.11.2003, 12:34 Uhr
0xdeadbeef
Gott
(Operator)


Ich verschieb dich mal ins KDevelop/Qt-Forum.
-->
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ KDevelop / Qt / wxWidget ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: