需要 Qt 画图函数

voidMyGui::paintEvent(QPaintEvent*event){QPainterpainter(this);...}这函数确实能画图,但我需要一个带参数... void MyGui::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
...
}
这函数确实能画图,但我需要一个带参数函数如:
void f(int x,int y)
{
draw**(x,y,width,height);
....
}
到底怎么写啊?
把void MyGui::paintEvent(QPaintEvent *event)函数改成
void MyGui::paintEvent(QPaintEvent *event,int x,int y)为什么不行啊?
还有函数体内根本没用 event,那为什么还要加这个参数?
如果给我满意的答案,在奖赏很多积分,奖赏多少那就看我的满意程度了。
展开
 我来答
leoNavigator
2010-01-03 · TA获得超过132个赞
知道小有建树答主
回答量:66
采纳率:0%
帮助的人:85.4万
展开全部
qt每次重绘的时候,都要调用paintEvent(QPaintEvent *event),而你增加了形参变量的paintEvent(QPaintEvent *event,int x,int y)属于函数重载,qt当然不认了。
解决的办法就是你可以通过设置类成员变量x,y,和函数f(int x, int y)来修改x,y,这样你只需要将draw**(x,y,width,height)放入paintEvent函数就可以了,如:
void f(int x,int y)
{
this->x=x;
this->y=y;
}
void MyGui::paintEvent(QPaintEvent *event)
{
...
draw**(this->x,this->y,width,height);
...
}

另外,关于event的,实际上一般情况下用不到,但是某些特殊情况下可以通过它来获取一些绘制的信息,如region()或者rect()等绘制区域的信息
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式