说明:
获取到键盘,鼠标的焦点,将这两个焦点设置新界面上
#include <QWindow>
QWidget *m_dialog = new QWidget;
this->setWindowFlags(Qt::WindowStaysOnTopHint);
this->setMinimumSize(400, 180);
this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_dialog->setAttribute(Qt::WA_DeleteOnClose);
QTimer::singleShot(100, this, [this]() {
//显示该界面到屏幕中间
QDesktopWidget *desktop = qApp->desktop();
m_dialog->move((desktop->width() - m_dialog->width()) / 2, (desktop->height() - m_dialog->height()) / 2);
//获取到鼠标,键盘的焦点
m_dialog->grab();
bool bGrabMouseState = m_dialog->windowHandle()->setMouseGrabEnabled(true);
bool bGrabKeyboardState = m_dialog->windowHandle()->setKeyboardGrabEnabled(true);
qDebug() << "抓取鼠标焦点(true : 成功),setMouseGrabEnabled :" << bGrabMouseState;
qDebug() << "抓取键