hi,
ich wollte wissen, ob es in Qt eine Möglichkeit gibt um Toolbars zu basteln, die automatisch ein- und ausgeblendet werden.
Chris
ein-/ausblendene Toolbar
ein-/ausblendene Toolbar
Glaube an eine Lösung, nur dann kannst du auch eine finden.
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
wouold be nice
wie wär es wenn wir eine Klasse schreiben, welche ein beliebiges QWidget "verwaltet". In der folgenden Form:
geht das wohl so in der Art?
und dann muss man nur noch dafür sorgen, dass mouseover event die Popin und mouseleaveevent die popout aufruft... oder?
Elgrimm Esleborn
wie wär es wenn wir eine Klasse schreiben, welche ein beliebiges QWidget "verwaltet". In der folgenden Form:
Code: Alles auswählen
class C_PopingWidget : public Q_Object
{
public:
C_PopiongWidget ( QWidget *fp_widget );
protected slot:
void PopIn ( );
void PopOut ( );
void MakeOneStepIn ( );
void MakeOneStepOut ( );
private:
QTimer *mp_timer;
QWidget *mp_widget;
quint32 m_shown;
bool m_popIn;
};
# define INTERVAL 50
# define INTERVALS 50
C_PopiongWidget::C_PopiongWidget ( QWidget *fp_widget ) : mp_widget ( fp_widget ), m_shown ( 0 ), mp_timer ( new QTimer ( this ) ), m_popIn ( false )
{
mp_timer->setInterval ( INTERVAL );
mp_timer->setSingleShot ( false );
mp_timer->start ( );
}
void C_PopiongWidget::PopIn ( )
{
if ( m_shown < INTERVALS && !m_popIn )
{
disconnect ( mp_timer, SIGNAL ( timeout ( ) ), this, NULL );
connect ( mp_timer, SIGNAL ( timeout ( ) ), this, SLOT ( MakeOneStepIn ( ) ) );
mp_timer->start ( );
m_popIn = true;
}
}
void C_PopiongWidget::PopOut ( )
{
if ( m_shown > 0 && m_popIn )
{
disconnect ( mp_timer, SIGNAL ( timeout ( ) ), this, NULL );
connect ( mp_timer, SIGNAL ( timeout ( ) ), this, SLOT ( MakeOneStepOut ( ) ) );
mp_timer->start ( );
m_popIn = false;
}
}
void C_PopiongWidget::MakeOneStepIn ( )
{
// Hier muss man dafür sorgen, dass 1/INTERVALS der Größe mehr eingeblendet wird
}
void C_PopiongWidget::MakeOneStepOut ( )
{
// Hier muss man dafür sorgen, dass 1/INTERVALS der Größe weniger eingeblendet wird
}und dann muss man nur noch dafür sorgen, dass mouseover event die Popin und mouseleaveevent die popout aufruft... oder?
Elgrimm Esleborn
Glaube an eine Lösung, nur dann kannst du auch eine finden.