我想要点击
界面上button然后在界面画一条线有办法办到吗?? 下面是我参考范例写的 
void Dialog::paintEvent(QPaintEvent *) 
{ 
    QPainter *painter=new QPainter(this); 
    QPen pen(Qt::blue, 4); 
    painter->setPen(pen); 
    painter->drawLine(13,450,500,450);//畫線 
} 
这样的确是可以画一条线~~但是他是当我打开界面马上就出现那条线 
我是想要当我点击button后才画线 我有稍微修改一下变成  
void Dialog::on_pushButton_8_clicked(QPainter *painter) 
{ 
    painter=new QPainter(this); 
    QPen pen(Qt::blue, 4); 
    painter->setPen(pen); 
    painter->drawLine(13,450,500,450);//畫線 
} 
on_pushButton_8_clicked(QPainter *painter)这行我是乱打的~~想说试试看~~当然结果是失败 
请问大家要怎么修改 请给我一点提示~~谢谢 
我在.h檔宣告了 bool isDrawn 
然後button 的signal 為 click(bool) Dialog slot 為 DrawnOrNot(bool) 
在.cpp檔打上 
void Dialog::DrawnOrNot(bool flag) 
{ 
isDrawn = flag; 
this->update(); 
} 
void Dialog::paintEvent(QPaintEvent *) 
{ 
QPainter painter(this); 
QPen pen(Qt::blue, 4); 
painter.setPen(pen); 
if (isDrawn) 
painter.drawRect(30,428,50,22);//画长方形 
} 
目前我可以按下button后就把取消画长方形~但是我要的是相反结果!! 我试着改成if (!isDrawn) 
但却变成长方形一直存在 
请问该怎么办呢 
我解决了 
我改成if (!isDrawn) 
然后把长方形改成变数painter.drawRect(30,428,w,h);//画长方形 
 然后在 DrawnOrNot(bool flag) 指定w,h就可以了!!
不过还是有点奇怪,他不给我指定x和y 
这是错误讯息 
error: no matching function for call to 'QPainter::drawRect(<unresolved overloaded function type>, <unresolved overloaded function type>, int&, int&)'
为什么不能指定x,y?? 
[ 此帖被jjliao在2010-05-30 21:23重新编辑 ]