gpt4 book ai didi

c++ - 编译器在使用 public bool 时提示 'QTransform::QTransform(bool)' 是私有(private)的,为什么?

转载 作者:行者123 更新时间:2023-11-28 02:10:45 26 4
gpt4 key购买 nike

qt类的第一个 block 是:

class Q_GUI_EXPORT QTransform
{
public:
enum TransformationType {
TxNone = 0x00,
TxTranslate = 0x01,
TxScale = 0x02,
TxRotate = 0x04,
TxShear = 0x08,
TxProject = 0x10
};

很明显它不是私有(private)的。

当我现在尝试编译我的程序时,编译器会提示这一行:

QGraphicsScene scene;
item = scene.itemAt(50, 50, QTransform::TxNone);

它给了我:

error: 'QTransform::QTransform(bool)' is private

inline QTransform(bool)
^

其次是:

error: within this context

 item = scene.itemAt(50,50,QTransform::TxNone);
^

但我不知道是什么让编译器假定 QTransform::TxNone 是尝试调用 QTransform 方法。

那我做错了什么?以及如何弄清楚我不是在指方法,而是在我发布的第一个片段中看到的类的公共(public)枚举?

最佳答案

问题是:

QGraphicsItem * QGraphicsScene::itemAt(qreal x, qreal y, const QTransform & deviceTransform) cons

它接受一个QTransform对象...

QTransform()
QTransform(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33 = 1.0)
QTransform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy)
QTransform(const QMatrix & matrix)

但是没有构造函数可以将您使用的枚举转换为转换对象

关于c++ - 编译器在使用 public bool 时提示 'QTransform::QTransform(bool)' 是私有(private)的,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35839802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com