QFrame:创建mousePressEvent

时间:2013-04-25 06:59:46

标签: qt events qt5 qt-designer

实际上我正在尝试为QT 5中的QFrame获取一个mousePressEvent(带有Qt-Addin的VS2010)。在这里和其他论坛上看到了很多建议,但是更新的工作,或者我不理解原理。还看了scribble示例,没有运气

如何获取QFrame的mousePressEvent?我是否必须创建一个继承自QFrame的类,然后在main()函数中自己初始化此框架?是不是有一个解决方案,我可以将它绑定到Qt-Designer?

尝试了多种方法,大多数都是这样的:

protected:
void TestQtFormsApplication::mousePressEvent(QMouseEvent *qevent)
{
    if (qevent->button() == Qt::LeftButton)
    {
        this->close();
    }
};

有了这个我得到错误C2027:使用未定义类型'QMouseEvent'

1 个答案:

答案 0 :(得分:1)

子类QFrame并重新实现mousePressEvent(..),就像您的示例中一样。请记住accept()事件以阻止它传播到父窗口小部件。您的错误是因为QMouseEvent仅在QWidget头文件中向前声明,只需自己包含它。

如果你想在Qt Designer中使用你的子类,只需使用QFrame并将它''推广'到你的子类(docs)。