标签:creat filename 完成 find nec return win ext lease
当我们需要处理窗口以外的全局键盘和鼠标事件的时候,我们可以通过installEventFilter在QApplication上安装事件过滤器来进行处理。
调用示例如下:
UIGQtPOSLogin::UIGQtPOSLogin(QWidget *parent)
: UIGQtLib::UIGQWindow(parent)
{
UIGQtLib::uigCreatePageByFileName(this, "LoginPage.json");
_closeBtn = findChild<UIGQtLib::UIGQPushButton*>("btnLogin");
_editUser = findChild<UIGQtLib::UIGQLineEdit*>("editUser");
_editUser->setTextMargins(20, 0, 20, 0);
connect(_closeBtn, SIGNAL(clicked()), this, SLOT(BtnClicked()));
setWindowFlag(Qt::FramelessWindowHint);
QApplication::instance()->installEventFilter(this);
}
这里我们利用QApplication::instance()->installEventFilter(this);完成了全局过滤器的安装。
然后我们实现一下eventFilter,来接收全局的事件消息。
bool UIGQtPOSLogin::eventFilter(QObject * pObject, QEvent * pEvent)
{
if (pEvent->type() == QEvent::KeyRelease)
{
QKeyEvent* pKeyEvt = (QKeyEvent*)pEvent;
int key = pKeyEvt->key();
...
}
return UIGQtLib::UIGQWindow::eventFilter(pObject, pEvent);
}
更多详情请浏览
标签:creat filename 完成 find nec return win ext lease
原文地址:https://www.cnblogs.com/Qt-UI/p/13171925.html