Fotoshow wenn kein Mausklick
Fotoshow wenn kein Mausklick
Hallo allerseits,
ich möchte eine fotoshow laufen lassen, wenn in meinem Prog eine gewisse zeit nicht los ist. Also wenn mit der Maus nicht geklickt wurde.
ich verfolge die Idee, dass ich sage:
Wenn kein Mausklick erkannt wird, dann starte timer und zähle bis 5sekunden und dann starte fotoshow.
Und das ganze mit SLOT /SIGNAL...allerdings klappt es nicht so ganz..
Hat jemand vielleicht eine andere Variante als mit SLOT/SIGNAL.
ich möchte eine fotoshow laufen lassen, wenn in meinem Prog eine gewisse zeit nicht los ist. Also wenn mit der Maus nicht geklickt wurde.
ich verfolge die Idee, dass ich sage:
Wenn kein Mausklick erkannt wird, dann starte timer und zähle bis 5sekunden und dann starte fotoshow.
Und das ganze mit SLOT /SIGNAL...allerdings klappt es nicht so ganz..
Hat jemand vielleicht eine andere Variante als mit SLOT/SIGNAL.
Re: Fotoshow wenn kein Mausklick
Es klappt aber ganz sicher mit SIGNAL/SLOT. Wenn es nicht klappt machst du etwas falsch, und den Fehler findet man nur mit deinem Code.MissG hat geschrieben:Und das ganze mit SLOT /SIGNAL...allerdings klappt es nicht so ganz..
Hat jemand vielleicht eine andere Variante als mit SLOT/SIGNAL.
Eine Alternative ohne SIGNAL/SLOT wäre die Verwendung von timerEvent().
Nette Idee ... nur läuft dein Prog ja nicht im luftleeren Raum ... wenn der User nicht "aktiv" was macht kann sich dein Prozess schlafen legen und andere Dinge im Hintergrund dürfen arbeiten - du läßt dein Prog aber Dauerarbeiten --> Systemlast
... andererseits ... wenn du nur alle 5s oder so ein Bild änderst, passiert da auch nicht viel.
Wenn du deinem MainWidget ein setMouseTracking(true); spendierst und einen globalen timer benutzt den du im virtual void mouseMoveEvent ( QMouseEvent * event ) imer wieder startest bedarf es vielleicht nicht ganz so doller code controlle?
Wenn du deinem MainWidget ein setMouseTracking(true); spendierst und einen globalen timer benutzt den du im virtual void mouseMoveEvent ( QMouseEvent * event ) imer wieder startest bedarf es vielleicht nicht ganz so doller code controlle?
mein Mainwidget ist ein MainDialog
, da ging es mit dem mousetracking nicht. sonst hätt ich das so gemacht. Gerade dies war die herasuforderung, wenn man es so sagen darf
).
Allerdings gibts etwas probleme beim verlassen der fotoshow, wenn der user aktiv wird...der rechner ist nicht so das schnellste..
Kann es daran liegen, dass ich zuviele bilder lade. Ich habe die Bilder in eine Widget gepackt und dann alle geladen. Und lass die durch eine switch anweisung durchlaufen. Die anweisung ist halt eine Zahl die ich dann incrementiere.
Laden tu ich die bilder mit QPixmap, gibt es da vielleicht eine bessere, zB QImage etc?
Könnte man denn in ein QDialog ein mouseEvent einbinden?
Allerdings gibts etwas probleme beim verlassen der fotoshow, wenn der user aktiv wird...der rechner ist nicht so das schnellste..
Kann es daran liegen, dass ich zuviele bilder lade. Ich habe die Bilder in eine Widget gepackt und dann alle geladen. Und lass die durch eine switch anweisung durchlaufen. Die anweisung ist halt eine Zahl die ich dann incrementiere.
Laden tu ich die bilder mit QPixmap, gibt es da vielleicht eine bessere, zB QImage etc?
Könnte man denn in ein QDialog ein mouseEvent einbinden?
QDialog erbt von QWidget und das hat das mit der Maus
aber wenn du sagst es geht nicht dann glaub ich das mal
edit:
glaub ich das mal (== ich hab keine Lust es zu überprüfen, machs selbst, wenn ichs brauch, test ichs
)
Ich finde franzf gut
edit:
glaub ich das mal (== ich hab keine Lust es zu überprüfen, machs selbst, wenn ichs brauch, test ichs
Ich finde franzf gut
Zuletzt geändert von padreigh am 16. August 2010 23:26, insgesamt 2-mal geändert.
Das ist doch keine Glaubenssache, und probiert ist es sofort
Was soll ich sagen - die qDebug()s kommen an, ergo es geht.
Code: Alles auswählen
#include <QDialog>
#include <QMouseEvent>
#include <QDebug>
#include <QApplication>
class Win : public QDialog {
void mouseMoveEvent(QMouseEvent* e) {
qDebug() << "Mouse Move" << e->pos();
}
};
int main(int argc, char** argv) {
QApplication app(argc, argv);
Win w;
w.setMouseTracking(true);
w.exec();
return app.exec();
}