需要 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,那为什么还要加这个参数?
如果给我满意的答案,在奖赏很多积分,奖赏多少那就看我的满意程度了。 展开
{
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,那为什么还要加这个参数?
如果给我满意的答案,在奖赏很多积分,奖赏多少那就看我的满意程度了。 展开
展开全部
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()等绘制区域的信息
解决的办法就是你可以通过设置类成员变量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()等绘制区域的信息
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询