paintEvent(QPaintEvent *) 重画时如何修改参数(比如update,repaint时
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
resize(640,600);
QLabel *label = new QLabel(tr("Training images side(<60):"));
QLineEdit *edit = new QLineEdit(tr("50"));
//QLineEdit *edit2 = new QLineEdit();
QPushButton *button1 = new QPushButton(tr("Randomly generated image"));
QPushButton *button2 = new QPushButton(tr("Generated next image"));
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(label);
layout->addWidget(edit);
layout->addWidget(button1);
//layout->addWidget(edit2);
layout->addWidget(button2);
layout->setAlignment(Qt::AlignTop);
setLayout(layout);
L=edit->text().toInt();
//QString str = QString::number(L);
//edit2->setText(str);
connect(button1,SIGNAL(clicked()),this,SLOT(change()));
}
void Widget::change()
{
//this->repaint();
this->update();
}
void Widget::random()
{
int m = qrand()%100;
if(m<=20){
color = false;
}else{
color = true;
}
}
void Widget::paintEvent(QPaintEvent *)
{
int length;
int i=0;
int j=40;
//length=edit->text().toInt();
//L=edit->text().toInt();
length=L;//就是这里
QPainter painter(this);
for(int m=0;m<=length;m++){
for(int n=0;n<=length;n++){
painter.begin(this);
random();
if(color){
painter.setBrush(QBrush(Qt::white,Qt::SolidPattern));
}else{
painter.setBrush(QBrush(Qt::black,Qt::SolidPattern));
}
painter.setPen(QPen(Qt::gray));
painter.drawRect(i,j,i+10,j+10);
painter.end();
i=i+10;
}
i=0;
j=j+10;
}
}
Widget::~Widget()
{
}