在堆栈溢出的地方回顾一些示例,我仍然无法使用全局变量进行编译。 Csize已在renderarea.h中用extern声明。

#ifndef RENDERAREA_H
#define RENDERAREA_H

#include <QBrush>
#include <QPen>
#include <QPixmap>
#include <QWidget>

extern int CSize;


然后将其在renderarea.cpp中与包含的renderarea.h设置为等于10

#include "renderarea.h"
#include <QTimer>

#include <QPainter>

int Xresolution = 800;
int Yresolution = 480;

int startAngle = 100 * 16;
int arcLength = 100 * 16;
int CSize = 10;


然后,我尝试在renderarea.cpp的QRect函数中使用它

//! [8]
void RenderArea::paintEvent(QPaintEvent * /* event */)
{
static const QPoint points[4] = {
    QPoint(800, 0),
    QPoint(0, 0),
    QPoint(0, 480),
    QPoint(800, 480)
};

QRect rect(0, 0, CSize, Csize);

QPainterPath path;
path.moveTo(20, 80);
path.lineTo(20, 30);
path.cubicTo(80, 0, 50, 50, 80, 80);

//! [8]


似乎应该可以,但是在编译时未在此范围中声明get'Csize'。
有什么提示吗?

最佳答案

问题是您使用的是Csize而不是声明为全局变量的CSize。请记住,c++中的标识符区分大小写,因此CsizeCSize不同

09-11 20:20