gpt4 book ai didi

c++ - 即使没有焦点也想接收事件

转载 作者:行者123 更新时间:2023-11-28 08:00:22 26 4
gpt4 key购买 nike

我在 QGraphicView 中有一个 QGraphicsScene。我希望它接收我的键盘事件,即使我没有按下屏幕。因为如果我按住某个键单击屏幕上的任意位置,我需要执行另一个操作,但现在我需要先单击,所以即使我没有将焦点放在 QGraphicsScene 上,我也需要捕获事件。我试图将事件放在 MainWindow 上,但它不起作用。

我得到这样的事件:

void AreaScene::keyPressEvent(QKeyEvent *event){
if(event->key()==Qt::Key_Control){
MapData::controlPress=true;
}
}
void AreaScene::keyReleaseEvent(QKeyEvent *event){
if(event->key()==Qt::Key_Control){
MapData::controlPress=false;
this->renderArea=false;
}
}

最佳答案

在您的 QGraphicView 子类的构造函数中:

`installEventFilter(this)`

并在类中实现这个功能:

bool eventFilter(QObject*, QEvent* e);

在这个函数中你应该编写类似的代码

switch(e->type())
{
...
case QEvent::NonClientAreaMouseButtonPress:
{
...
}
case QEvent::NonClientAreaMouseButtonRelease:
{
...
}
}

关于c++ - 即使没有焦点也想接收事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11632171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com