Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Mai 26, 2024 13:38

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Anpassung von OpenGL-Code in Qt
BeitragVerfasst: Mi Aug 10, 2011 22:07 
Offline
DGL Member

Registriert: Mo Apr 27, 2009 11:19
Beiträge: 35
Hallo liebe Forenmitglieder,

ich versuche gerade meinen Opengl-code unter Qt zum laufen zu bringen. Da muss ich ja dann einige spezifische Funktionen von GLUT mit Qt-Funktionen realiesen. Hat soweit, glaube ich, geklappt. Es hapert aber leider an der Anpassung der glutKeyboardFunc(). Anstatt glutKeyboardFunc() nutze ich keyPressEvent(QWidget* event).

Jetzt möchte ich einfach eine Variable, die ich vorher global definiert habe mit einer Tastenanweisung ändern. So sieht das dann aus:

Code:
  1.  
  2. int modus = -1;
  3. .....
  4. void GLWidget::keyPressEvent(QKeyEvent* event)
  5. {
  6.     switch (event->key())
  7.     {
  8.     case Qt::Key_F2 :
  9.         modus = 1;
  10.         updateGL();
  11.         break;
  12.     default:
  13.         break;
  14.     }
  15. }
  16.  


Diese Variable dient dann einer if-Überprüfung in mousePressEvent

Code:
  1.  
  2. void GLWidget::mousePressEvent(QMouseEvent* e)
  3. {
  4.     if (modus == 1 && (e->buttons() & Qt::LeftButton))
  5.     {
  6.         counter++;
  7.         p_list[counter].x = mx - width1/2;                                
  8.         p_list[counter].y = my - height1/2;    
  9.         glPointSize(5);
  10.         glColor3d(1, 0, 0);
  11.         updateGL();
  12.     }
  13. }
  14.  


Aber leider findet keine Änderung der Variable modus statt. Ich habe mich bei der Umwandlung von GLUT-Funktionen in Qt-Code an diese Seite gehalten.

Nach mehrerem Rumprobieren habe ich festgestellt, dass ich gar nicht in die Funktion keypressevent reinkomme. Auch einfache Printbefehle werden gar nicht ausgeführt. Die Funktion wird also gar nicht aufgerufen. Woran kann das liegen????

Danke schonmal für eure Antworten...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Anpassung von OpenGL-Code in Qt
BeitragVerfasst: Fr Aug 12, 2011 22:15 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Ideen:
1. Sicher das dein QGLWidget den Keyboard-Focus hat? Ggf. einmal mit der Maus reinklicken.
2. Setzt du deine Variable im keyReleaseEvent vielleicht wieder zurück? Du musst wissen das es ein Autorepeat gibt. Solange die Taste gedrückt gehalten wird werden ständig abwechselnd press und release Events gefeuert. Ziemlich sinnlos, aber man kann einfach alle Events komplett ignorieren bei denen event->isAutoRepeat() == true.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]