Qt - 将QMouseEvent传递给子野生

时间:2014-07-08 11:51:58

标签: c++ qt qmouseevent

我已经对QMouseEvents做了一些研究,但是我很难将QMouseEvent传递给子窗口小部件。我有一个像这样结构的程序:

MainWindow > DockWidget > WidgetList > WidgetTarget

MainWindow是DockWidget等的父...我的主要目标是知道我何时点击MainWindow并将此QMouseEvent传递给WidgetTarget。

我阅读了关于QMouseEvent的文档并查看了QEvent的有用函数ignore(),但它与我想要的相反。 QMouseEvent传递给父级,所以如果我在WidgetTarget中,则将QMousseEvent传递给WidgetList。

那么有没有办法将QMousseEvent传递给子窗口小部件而不是父窗口小部件? 我看到了Qt :: WA_TransparentForMouseEvents旗帜的一些技巧,但我不知道这是否是正确的方法

编辑: 我将使用mousePressEvent(QMouseEvent * event)在WidgetTarget中详细介绍该工作。它基本上是制作吸管。这里是我的代码:

 void WidgetTarget::mousePressEvent(QMouseEvent *event)
    {
        if(eyeDropperActivated) //true when clicked on button eyedropper
        {
           QLabel *label = (QLabel*)MainWindow->childAt(event->x(),event->y());
           QColor color; //Get the pixel value at x,y event from the QLabel pixmap
           setColor(color) //Set the color parameter of WidgetTarget                                                                                              
        }

    }

我读了你的有用的评论,是的,我认为这很容易如果我在MainWindow上实现这个代码,但是吸管功能在WidgetTarget中,所以基本上我必须找到在WidgetTarget中激活吸管的方法,检查MainWindow如果吸管被激活,然后向WidgetTarget发送一个带有QColor的信号?

最好的问候

0 个答案:

没有答案