我想要点击
界面上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重新编辑 ]