[gelöst] Fade-in bzw. Fade-out Effekt

Alles rund um die Programmierung mit Qt
Antworten
Alci
Beiträge: 70
Registriert: 24. März 2006 23:34

[gelöst] Fade-in bzw. Fade-out Effekt

Beitrag von Alci »

Hallo,

folgende Frage: ist es mit QT möglich, einen Fade-in bzw. Fade-out Effekt zu implementieren? Ich habe ein eigenes Button-Control durch Subclassing erstellt. Jetzt möchte ich noch einen Fade-in bzw. Fade-out Effekt einbauen, aber wie?

Ich weiß z. B. von Opera (das, soweit ich informiert bin, QT benutzt), dass man dort bei den Buttons solch einen Effekt verwendet.

MfG, Alci.
Zuletzt geändert von Alci am 27. Mai 2006 17:23, insgesamt 1-mal geändert.
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Das kann man in Qt einstellen, welchen Effekt man verwenden möchte.

void QApplication::setEffectEnabled ( Qt::UIEffect effect, bool enable = true ) [static]
Alci
Beiträge: 70
Registriert: 24. März 2006 23:34

Beitrag von Alci »

Hallo,

danke erstmal, aber leider ist da nicht's dabei, wonach ich suche. Gibt es nicht irgendeine andere Möglichkeit, die ich vielleicht irgendwie selbst mit QPainter realisieren könnte?

Z. B. beim Button:
wenn ich über den Button fahre, dann soll der MouseOver-Effekt sanft eintreten, d. h. ich muss mehrere male ein PaintEvent auslösen. Aber wie? Über einen Timer?

Kennt vielleicht jemand von euch ein OpenSource-Projekt, was solche Effekte einsetzt, und dabei auch noch zufällig QT verwendet?
Würde mir auch weiter helfen.

MfG, Alci.
Zuletzt geändert von Alci am 25. Mai 2006 20:08, insgesamt 1-mal geändert.
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Die Events sind alle virtual, d.h. du musst Sie selbst überschreiben.

Also eine Klasse erstellen, die von QPushButton abgeleitet ist und paintEvent überschreiben mit dem, was du dir da genau vorstellst. Mit update wird dann jeweils in der Klasse das paintEvent manuell ausgeführt.
Alci
Beiträge: 70
Registriert: 24. März 2006 23:34

Beitrag von Alci »

Hi,

also wie ich ein PaintEvent technisch gesehen auslöse (über die Methode update()), weiß ich schon. Was ich eigentlich meinte ist, wie ich ein PaintEvent mehrere male auslösen kann.

Ich könnte ja sowas machen:

Code: Alles auswählen

update()
sleep(100)
update()
sleep(50)
update()
sleep(25)
update()
Was ja völliger Blödsinn wäre, weil ich damit die Anwendung blockiere.
Wie könnte ich das also anders machen bzw. wie wird das normalerweise gemacht.

MfG, Alci.
uhu01
Beiträge: 150
Registriert: 10. Juli 2005 20:46

Beitrag von uhu01 »

Hy!

Ich schätze mal dieser Artikel aus dem QtQuarterly wird dein Problem lösen: http://doc.trolltech.com/qq/qq16-fader.html

Dort wird ein Proxy-Widget gebaut, das alle Widgets fade-fähig macht.

mfg
uhu01
Alci
Beiträge: 70
Registriert: 24. März 2006 23:34

Beitrag von Alci »

Hi,

vielen Dank. Wenigsten habe ich jetzt einen Anhaltspunkt. Ich werde mir das ganze mal durchlesen.

Thx nochmal, Alic.
Alci
Beiträge: 70
Registriert: 24. März 2006 23:34

Beitrag von Alci »

Hallo nochmal,

hat wunderbar geklappt (siehe Anhang).
Danke.

MfG, Alci.
Dateianhänge
Button.zip
(154.66 KiB) 223-mal heruntergeladen
uhu01
Beiträge: 150
Registriert: 10. Juli 2005 20:46

Beitrag von uhu01 »

Hy!

Wie wärs mit einem Eintrag in "Snippets"?

mfg
uhu01
Alci
Beiträge: 70
Registriert: 24. März 2006 23:34

Beitrag von Alci »

Hi,

nun ja, wenn Bedarf da ist, kein Problem. Ich versuche, dass ich das noch innerhalb dieser Woche bei "Snippets" eintrage. Garantieren kann ich aber nichts, da ich in letzter Zeit etwas wenig Zeit habe.
MfG, Alci.

Aktuelle Projekte:
FModPlayer: Audio-Player auf Basis von FModEx
Epp.org: C++-IDE mit MinGW-Compiler

Entwickelt wird unter anderem mit Qt 4.1.4
Alci
Beiträge: 70
Registriert: 24. März 2006 23:34

Beitrag von Alci »

Hallo nochmal,

ich habe jetzt mal ein Topic (fälschlicherweise) unter "Projekte" erstellt, falls das jemand unter "Snippets" erwartet hätte. Bitte die Admins aber nochmals, das zu ändern. Ansonsten bin ich schon mal auf das Feedback gespannt.
MfG, Alci.

Aktuelle Projekte:
FModPlayer: Audio-Player auf Basis von FModEx
Epp.org: C++-IDE mit MinGW-Compiler

Entwickelt wird unter anderem mit Qt 4.1.4
Antworten