回顾这里关于堆栈溢出的一些例子,我仍然无法使用全局变量进行编译。 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]
似乎这应该没问题,但是要得到Csize&#39;编译时未在此范围内声明 任何提示?
答案 0 :(得分:1)
问题是您使用的是Csize
而不是CSize
,您声明为全局。请注意c++
中的标识符区分大小写,因此Csize
与CSize
不同