|
部分代码如下
void Widget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
QPen p1(Qt::blue);
painter.setPen(p1);
QBrush brush(Qt::gray);//
painter.setBrush(brush);
for(int x=10;x<590;x+=20)
for(int y=10;y<390;y+=20)
{
painter.drawRect(x,y,20,20);
}
}
void Widget::mousePressEvent(QMouseEvent *e)
{
QPainter painter(this);
QPoint point;
int p_x;
int p_y;
if(e->button()==Qt:eftButton)
{
//QWidget *action = QApplication::widgetAt(QCursor::pos()); //通过鼠标点击的坐标获取控件
point=e->pos();
p_x=point.rx();
p_y=point.ry();
//qDebug()<<e->globalPos();全局相对于屏幕坐标
qDebug()<<e->pos();//窗体中的坐标
painter.fillRect((p_x-10)/20*20+10,(p_y-10)/20*20+10,20,20,QBrush(Qt::red));
}
}
环境 win7+Qt5.1.1+Mingw4.8 Qt Creator2.8.1 |
|