使用MainWindow中的QCheckBox和QPushButton将焦点放在QGLWidget上

时间:2012-12-08 01:23:26

标签: qt focus qglwidget

我有一个带有QCheckBox和QPushButton的Qt主窗口和一个用于图形渲染的子QGLwidget类窗口小部件。

我已加入void Ui_MainWindow::setupUi(QMainWindow *MainWindow)成员函数:

void Ui_MainWindow::setupUi(QMainWindow *MainWindow)
{
   pushButton_2 = new QPushButton(widget);
...
   checkBox_3 = new QCheckBox(widget);
...
    widget_2 = new GLWidget(widget);
    widget_2->setFocusPolicy(Qt::StrongFocus);
    widget_2->setFocus();
...
}

我创建了修改widget_2

图形渲染的信号
void Ui_MainWindow::createSignals()
{ 
...
connect(pushButton_2, SIGNAL(clicked()), this, SLOT(pauseSimu()));  
connect(checkBox_3, SIGNAL(clicked()), this, SLOT(hideClassic()));     
...
}

尽管点击widget_2pushButton_2,我仍然要始终关注checkBox_3,我必须加入pauseSimu()hideClassic()

void Ui_MainWindow::pauseSimu()
{

widget_2->setFocus();

...

}

void Ui_MainWindow::hideClassic()
{

widget_2->setFocus();

...

}

widget_2 GLWidget上的关键事件在GLWidget类成员函数中编码。

我怎样才能避免在所有信号函数中使用setFocus()来始终关注widget_2 GLWidget?

1 个答案:

答案 0 :(得分:1)

尝试在按钮和复选框上调用setFocusPolicy(Qt::NoFocus)