我正在研究 Qt4 库,我想为我项目中 QWidget
的所有子项添加一些功能。我需要所有小部件都覆盖 mousePressEvent
。显然我不需要在我使用的每个特定小部件中覆盖它(我使用它们中的 many 并且它们遵循 DRY 规则),而是创建一个 Foo
类:
class Foo : public QWidget
{
Q_OBJECT
protected:
/* implementation is just a test */
virtual void mousePressEvent(QMouseEvent*) { this->move(0,0); }
};
并从中派生出我的按钮:
class FooButton : public QPushButton , public Foo
{
public:
FooButton (QWidget* parent) : QPushButton(parent) { };
};
但事件似乎没有被覆盖......我做错了什么? 提前致谢。
最佳答案
对于 mousePressEvent 访问,尝试 QObject::installEventFilter()。
关于c++ - 向类中添加新功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13094229/