QMessageBox 和 tabOrdering

QMessageBox and tabOrdering

有什么方法可以在 QMessageBoxsetTabOrder 而不对其进行子类化或自己编写?如果您已经有了大项目 - 这可能会有用。

Is there any way to setTabOrder in QMessageBox without subclassing it or writing my own? In cases when you already got big project - this might be useful.

有一种方法可以在 QMessageBox 中使用 setTabOrder。您只需要 QWidget* 指向 'from' 和 'to' 选项卡的指针。

class MyApp
{
   // ...
   void tabOrdering();
   QMessagebox* m_pMsgBox; 
}

void MyApp::tabOrdering()
{
     auto* pSaveBn = m_pMsgBox->addButton(QMessagebox::Save);
     m_pMsgBox->setTabOrder(m_pMsgBox->defaultButton(), pSaveBn);
}

您也可以考虑使用 QObject::findChild 方法来查找选项卡小部件停止点。