我按照示例here创建了一个Qt软件输入面板(SIP),效果非常好。不幸的是,当两个对话框失去焦点时,单击SIP不会将焦点恢复到任一窗口小部件。总结一下,当我:
我们发现这种行为有点奇怪,我们的用户也会怀疑。当两个窗口小部件都失去焦点时,有没有办法通过单击SIP将焦点恢复到目标对话框?
答案 0 :(得分:0)
解决。像这样使用QApplication::setActiveWindow()
:
void KeyboardPanel::buttonClicked( QWidget *widget )
{
if( m_lostFocus )
{
QWidget* parentWidget = m_lastFocusedWidget->parentWidget();
if( parentWidget ) QApplication::setActiveWindow( parentWidget );
}
}