实际上我正在尝试为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'
答案 0 :(得分:1)
子类QFrame
并重新实现mousePressEvent(..)
,就像您的示例中一样。请记住accept()
事件以阻止它传播到父窗口小部件。您的错误是因为QMouseEvent
仅在QWidget
头文件中向前声明,只需自己包含它。
如果你想在Qt Designer中使用你的子类,只需使用QFrame
并将它''推广'到你的子类(docs)。