c++ - Qt和C++:覆盖或扩展类

标签 c++ qt class qpushbutton

我想向QPushButton添加一些属性(例如ID)。因此,我需要扩展或覆盖Q_WIDGETS_EXPORT QPushButton : public QAbstractButton
我怎么做?
谢谢您的帮助。

最佳答案

这实际上取决于用例。从Qt-(Widget)类继承没有问题(通常是预期的方式)(如果我错了,请纠正我)。
因此,您可以执行以下操作:

class MyQPushButton : public QPushButton
{
     Q_OBJECT
public:
     MyQPushButton() : QPushButton(...) {}
private:
    int ID = -1;
}
Qt有一个很好的文档,您可以查看源代码以了解要覆盖的内容。
您还可以使用QPushButton扩展一个新类,但是如果您想例如,则始终必须在类中处理QPushButton引用。连接一些东西。在继承的类中,您可以连接插槽等。但是例如,您可以这样做:
class MyQPushButton 
{
public:
     MyQPushButton() {}
     const QPushButton& const GetQPushButton() { return pushButton; }
     const QPushButton* const GetQPushButtonPtr() { return &pushButton; }

private:
     QPushButton pushButton;
     int ID = -1;
}
没有对与错。但是我将对Qt类使用继承。

关于c++ - Qt和C++:覆盖或扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62808180/

相关文章:

java - 当我有并非所有实现者都支持的操作时,设计界面的正确方法是什么?

c# - 如何在c#中声明类型

c++ - 无法访问属性 C++

c++ - libevent bufferevent 套接字刷新

c++ - GDB JIT 接口(interface)最简单的例子

c++ - 从主线程询问运行对象表 (ROT) 时出错

c++ - 线程通信的 myDesign 是否可以接受?

c++ - 从 cvpoint 转换为 cvpoint2d32f

c++ - 如何在 Qt .pro 文件中添加宏定义

c# - .NET 二进制序列化元数据