У меня есть пользовательский QComboBox с QTreeView, который я хотел бы показать, когда пользователь нажимает стрелку раскрывающегося списка, чтобы отобразить параметры комбинирования.
Я заменил вызов QComboBox :: showPopup, показывая дерево в правильном месте.
Я также установил эти параметры в дереве:
mView_tree->setFocusPolicy(Qt::StrongFocus);
mView_tree->setFrameShape(QFrame::NoFrame);
mView_tree->setWindowFlags(Qt::Tool | Qt::CustomizeWindowHint);
А я покажу Popup:
... some code
mView_tree->move(loc);
mView_tree->show();
mView_tree->setFocus(Qt::MouseFocusReason);
Когда дерево появляется, оно не имеет фокуса. Как мне заставить его правильно сфокусироваться?
Я также попробовал это в случае, если некоторые сигналы QComboBox нарушают работу - в нижней части функции showPopup.
QMetaObject::invokeMethod(mView_tree, [=]() { mView_tree->setFocus(); }, Qt::QueuedConnection);
К сожалению, не повезло, любая информация / помощь?
ТИА