如何从Qt类继承
How to inherit from a Qt class?
我需要创建一个继承自QTextEdit的对象。问题是,每次我尝试从它继承,我得到以下错误:
错误C2248: 'QWidget::operator =':无法从'QWidget'类访问私有声明的成员
我尝试定义operator=
和没有工作。即使我也定义了copy constructor
。我总是得到这个错误
QWidget
类是QObject
的子类,使用Q_DISABLE_COPY
保护宏禁用了复制和分配操作。当您继承QObject
(或任何派生类)时,您定义的复制构造函数或赋值操作符尝试访问基类的对应部分,但它们在QObject
中是私有的,无法访问。这是故意的。
作为一个副作用,从QObject
继承的类的对象不能存储在STL或Qt容器中(vector, list等)。只能存储指针或引用。因为获取/设置对象需要使用复制构造函数进行复制,这是不可能的。
如果您既需要继承QWidget
,又需要重载operator=
和/或copy constructor
,您可以通过为这些任务添加显式方法来实现,例如isEqual
或clone
(尽管克隆QObject
不是一个好主意)。
相关文章:
- 如何在QT Creator上将QWidget声明为继承类的对象
- Qt Quick - 如何在 qml 接口中使用继承自 QQuickPaintedItem 的 c++ 类?
- 具有 QObject 继承的单例 - Qt
- 类 QLayout 和类 QMainWindow Qt c++ 之间的继承
- 如何在基类中使用来自qt中所有继承类的信号?
- Qt:如何访问继承的小部件?
- 如何列出从Qt中Qobject继承的类的所有成员变量
- QDialog 继承类的 Qt 调用成员函数
- QT:私人会员而不是继承?原因是什么?这是一个具体的概念吗?
- Qt 无法继承属性
- 如何在Qt Creator中从继承的类自动创建虚拟方法
- 在构造函数 QT 创建器(继承类)中传递默认参数
- Qt 中的 c++ 继承基础
- QT:继承导致模棱两可
- qt qsharedDatapointer多重继承钻石图案
- Qt 访问继承类的 D 指针
- 使用CMake构建Qt项目并从QMainWindow继承会导致未引用的vtable错误
- 我应该采取什么方式使用 qt:all 类继承自 QObject 或删除 新后手动删除
- LNK尝试继承时Qt中出现错误
- 类和继承qt