Qt中的paintevent如何通过枚举变量来控制绘图
我的枚举定义为
enum {Yellow,Red,Green}Llightcolor;enum {Square,Round,Triangle,Ellipse}LShape;
void LED::paintEvent(QPaintEvent*event){ QPainter painter(this); int side=qMin(width(),height()); painter.setViewport((width()-side)/2,(height()-side)/2,side,side); painter.setRenderHint(QPainter::Antialiasing,true); painter.setWindow(10,10,25,25); if(LanoteVoltage=="1"&&LcathodeVoltage=="0"){
switch(Llightcolor)
{
case Yellow:
painter.setBrush(QBrush(Qt::yellow,Qt::SolidPattern));
break;
case Red:
painter.setBrush(QBrush(Qt::red,Qt::SolidPattern));
break;
case Green:
painter.setBrush(QBrush(Qt::green,Qt::SolidPattern));
break;
default:
QMessageBox::information(0,"Alarm",tr("警告:颜色输入错误!"));
break;
}
switch(LShape)
{
case Square:
painter.drawRect(12,12,20,20);
break;
case Round:
painter.drawEllipse(12,12,20,20);
break;
case Triangle:
static int triangle[3][2]={ {12,12},{32,17},{12,22}};
painter.drawPolygon(QPolygon(3,&triangle[0][0]));
break;
case Ellipse:
painter.drawEllipse(12,12,20,10);
break;
default:
QMessageBox::information(0,"Alarm",tr("警告:形状输入错误!"));
break;
}
}但是他就是进不去,不会按这个值得改变而有对应的动作