在堆栈溢出的地方回顾一些示例,我仍然无法使用全局变量进行编译。 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++
中的标识符区分大小写,因此Csize
与CSize
不同