是否有一种优雅的方式来激活焦点小部件所在的选项卡?

lxe*_*lxe 1 c++ events user-interface qt

我在QTabWidget里面的一个小部件里面有一个QLineEdit.比方说,标签是标签索引2.如果当前活动的标签是在索引1,和我打电话的setFocus()(和show(),和raise())在QLineEdit的,活动标签不切换到索引2显示焦点小部件.

当窗口小部件获得焦点时,是否有任何优雅的方式来显示焦点窗口小部件的选项卡?

谢谢!

Ste*_*Chu 6

这是一个更通用的功能,可切换到包含小部件的选项卡:

void SwitchToTabContaining(QTabWidget * tabsW, QWidget * w)
{
    for(int i=0;i<tabsW->count();++i) {
        QWidget * tab = tabsW->widget(i);
        if(tab->isAncestorOf(w)) {
            tabsW->setCurrentWidget(tab);
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它没有经过测试,但你应该知道它是如何工作的.