View Full Version : Switch the focus between 2 widgets
franco.amato
14th December 2009, 20:07
Hi to all,
In my application I have mainly 2 widgets ( QWidgets , 2 waveform viewers ) and I would switch the focus between these 2 widgets with the shift key.
For example I have
wave_1 and wave_2. When the application starts the wave_1 has focus.
If I press shift wave_2 must have the focus. Pressing shift again wave_1 will have the focus and so on.
Pressing shift the focus must pass from wave_1 and wave_2, no other widgets.
How can I do it?
Best Regards
Lykurg
14th December 2009, 20:54
in wave_1 hold a pointer to wave_2 and vice versa. Then use QWidget::keyPressEvent() and there callwave_X->setFocus().
Or use signal and slots instead of the pointers.
franco.amato
14th December 2009, 21:17
in wave_1 hold a pointer to wave_2 and vice versa. Then use QWidget::keyPressEvent() and there callwave_X->setFocus().
Or use signal and slots instead of the pointers.
Hi, I have a CentralWidget containing the 2 widget.
I don't have to call setFocus from such container widget?
I wrote this code
void CentralWidget::keyPressEvent( QKeyEvent*pe )
{
switch( pe->key() )
{
case Qt::Key_Tab:
{
// switch the focus
if( m_pWave2->hasFocus() )
{
m_pWave1->setFocus( Qt::TabFocusReason );
}
else if ( m_pWave1->hasFocus() )
{
m_pWave2->setFocus(Qt::TabFocusReason);
}
break;
}
default:
QWidget::keyPressEvent(pe);
break;
}
}
this can be ok?
Lykurg
14th December 2009, 21:49
Hi, I have a CentralWidget containing the 2 widget.
I don't have to call setFocus from such container widget?
if you have a main widget, then it's easier.
I wrote this code
...
this can be ok?
That looks nice. Should work. Just try it.
franco.amato
15th December 2009, 00:05
if you have a main widget, then it's easier..
Hi I think I did a mistake.
If I press "tab key" from the main widget it mean that the main widget has the focus to receive keyboard event right?
Is not I want. I neet the focus only between wave_1 and wave_2
so I don't know how to "solve" that problem
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.