1

我有一个带有 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_2尽管单击pushButton_2or ,但要始终保持专注checkBox_3,我必须输入pauseSimu()and hideClassic()

void Ui_MainWindow::pauseSimu()
{

widget_2->setFocus();

...

}

void Ui_MainWindow::hideClassic()
{

widget_2->setFocus();

...

}

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

我怎样才能避免setFocus()在所有信号函数中使用以始终将注意力集中在widget_2GLWidget 上?

4

1 回答 1

1

尝试调用setFocusPolicy(Qt::NoFocus)您的按钮和复选框。

于 2012-12-08T02:18:53.040 回答