Hallo Community,
bin recht neu in der Qt Welt und daher noch oft am verzweifeln =( Ich versuche nun schon die ganze zeit eine einfache while schleife durch einen tastendruck (z B ESC-key) oder durch einen Button zu beenden bzw abzubrechen. Probiere ich zB mittels if schleife eine button abfrage zu realisieren, bekomme ich beim compilieren eine fehlermeldung. Er kann nicht auf den protected member clicked zugreifen
QKeyEvent *e;
if ( e->key() == Qt::Key_Escape ) break;
Wenn doch würde ich erstmal ein C/C++ Grundlagen Buch lesen.
Ansonsten - während einer Schleife kann Qt keine Events verarbeiten - Du blockierst die Eventloop ja mit der Schleife. Größere Rechenfunktionen sollten deshalb in eigene Threads ausgelagert werden. Aber wenn ich mir die beiden Codezeilen bzw. die daraus resultierenden Probleme ansehe würde ich erstmal mit den Grundlagen anfangen...
Sehr motivieren, danke Wie gesagt bin ich halt noch recht neu in Qt. Also ich hab gelesen, das durch das Änhangen von QCoreApplication:: processEvents() in einer schleife, ein reibungsloser ablauf möglich ist und auch die einfachste Variante sein soll. Um halt irgendwann mal aus der schleife raus zu kommen brauch ich ein break; ...
Das man Threads verwenden soll hab ich schon x mal gelesen doch leider nie wirklich ein anschauliches besipiel gefunden. Die dinger in der Qt doku kann man als anfänger echt vergessen. Die bringen mir gar nix =( Ich weiß bis jetzt nur das man die threads durch exec starten soll und dann mittels signalen und slots ansprechen kann.
Doch die erste variante ohne threads scheint mir bisher verständlicher ...
Sorry aber die obigen Probleme haben definitv nichts mit Qt sondern mit C++ Grundlagen zu tun. Ohne diese macht es keinen Sinn mit Qt anzufangen... ist nunmal so.
Und was machst Du? Du erzeugst einen uninitialisierten Pointer auf ein QKeyEvent und greifst darauf zu. Wie sollte das gehen? QKeyEvents gibts nur über die keyPressEvent/keyRelease - Funktionen.
Hey Christian,
das war doch mal nen wink mit dem Zaunpfahl Jetzt weiß ich wenigsten wo ich ansetzen muss und ich hab auch schon eine Idee ...
Danke dir!!
Gruß, Saul