【发布时间】:2016-03-07 09:07:40
【问题描述】:
qt类的第一个块是:
class Q_GUI_EXPORT QTransform
{
public:
enum TransformationType {
TxNone = 0x00,
TxTranslate = 0x01,
TxScale = 0x02,
TxRotate = 0x04,
TxShear = 0x08,
TxProject = 0x10
};
显然它不是私人的。
当我现在尝试编译我的程序时,编译器会抱怨这一行:
QGraphicsScene scene;
item = scene.itemAt(50, 50, QTransform::TxNone);
它给了我:
错误:'QTransform::QTransform(bool)' 是私有的
inline QTransform(bool) ^
接着是:
错误:在此上下文中
item = scene.itemAt(50,50,QTransform::TxNone); ^
但我不知道是什么让编译器假定 QTransform::TxNone 是尝试调用 QTransform 方法。
那我做错了什么? 以及如何明确我指的不是方法,而是我发布的第一个 sn-p 中看到的类的公共枚举?
【问题讨论】:
-
那
QTransform是QObject或QWidget的子类吗? -
您没有显示
itemAt的定义。但是错误信息表明第三个参数实际上是一个QTransform对象,而不是一个枚举实例