2009年7月4日 星期六

Qt畫圖



畫圖很簡單,問題是我要按一下按鈕就會重劃,找很久,才知道他的原理,首先要重新宣告paintEvent,要把處裡畫圖寫到這裡面,然後用update(),重劃
下面就是一個例子,setShape(int x,int y,int w,int h)是一個重劃函式,給了一個座標,和寬高,update來達成重劃矩形
paintEvent則重新宣告來畫圖(這裡是畫矩形)

void Widget::setShape(int x,int y,int w,int h)
{
shapex=x;
shapey=y;
shape_width=w;
shape_height=h;
update();
}
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
QPainterPath path;
painter.setBrush(QColor(122, 163, 39));
path.addRect(shapex, shapey, shape_width, shape_height);
painter.drawPath(path);
painter.restore();
}
------------------------slot函數-----------------------------------
void Widget::on_pushButton_pressed()
{
step_value= step_value+10;
setShape(20,20,120+step_value,120+step_value);
}

void Widget::on_pushButton_2_pressed()
{
step_value= step_value-10;
setShape(20,20,120+step_value,120+step_value);
}
------------------------------------------------------------------------
下面就是一個簡單例子,每當我按一次放大,長寬會加10,縮小則減10


沒有留言: