c++ - 声明要在类级别实例化的变量,并在类函数中使用
问题描述
假设我有这门课。我应该如何声明/实例化图像对象,以便我可以将它与所有函数一起使用,而无需将其作为参数传递?
view.h
class AAView : public QGraphicsView {
public:
explicit AAView();
QGraphicsScene* currentScene;
QImage image;
};
view.cpp
AAView::AAView() {
int sizeX = 1280;
int sizeY = 720;
image(sizeX, sizeY, QImage::Format_RGB32);
}
void AAView::drawPoint(int x, int y) {
image.setPixel(x, y, qRgb(255, 255, 100));
}
我收到了这个错误:
error: no match for call to '(QImage) (int&, int&, QImage::Format)'
image(sizeX, sizeY, QImage::Format_RGB32);
但是通过从标题中删除图像变量,这个错误就消失了。
解决方案
您似乎正在尝试调用QImage
构造函数 for image
,但这不是正确的语法。
您可以将其替换为构造函数中的以下行
image = QImage(sizeX, sizeY, QImage::Format_RGB32);
或者最好在成员初始化器列表中构造它
AAView::AAView() : image(1280, 720, QImage::Format_RGB32) {}
推荐阅读
- r - 如何根据唯一的条件语句在 R 中创建新列?
- python - 使用 Selenium WebDriver 将带有 alt 属性的 img 转换为文本
- perl - 缺少开发::Peek 模块
- google-maps - 异步使用 DirectionServices
- c - C 中的 CreateProcessA、Wait 和 ExitCode - 获取错误的退出代码
- typescript - 如何配置 VSCode 以运行 Yarn 2(使用 PnP)驱动的 TypeScript
- python - Pandas + Gspread 将长数字 ID 转换为 Scientific
- python - Cke 编辑器 youtube 嵌入
- excel - 有没有办法根据另一张工作表中的查找表过滤一张工作表上的数据?
- common-lisp - 如何在 SBCL 中显示错误的行号和源文件?