c++ - 向类中添加新功能

标签 c++ qt class overriding derived-class

我正在研究 Qt4 库,我想为我项目中 QWidget 的所有子项添加一些功能。我需要所有小部件都覆盖 mousePressEvent。显然我不需要在我使用的每个特定小部件中覆盖它(我使用它们中的 ma​​ny 并且它们遵循 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()。

http://doc.qt.digia.com/stable/qobject.html

关于c++ - 向类中添加新功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13094229/

相关文章:

c++ - 数组指针永远不会出现段错误?

c++ - Os X Yosemite Qt 拖放文件名错误

c++ - QSqlQueryModel 提示我的数据库没有打开

c++ - QTableView 不显示

c++ - 如何在 Windows 上将无效的 fgetpos 调用捕获为 C++ 异常?

c++ - 什么是 undefined reference /未解析的外部符号错误,我该如何解决?

qt - QML 条件绑定(bind)未按预期工作

java 。用户的输入通过实例变量在主类中起作用,但在其他类中不起作用

c++ - 有没有办法向该类的客户隐藏该类的私有(private)成员?

java - 当项目没有特定名称时,如何从列表中删除该项目?