Qt中关于QPainter的使用

各位大神,,这样的paintEvent函数为什么不能在满足条件后立即绘制直线?而是在当窗口切换之后再切换回来时直线就绘制成功了,为什么?输出信息重复输出多次voidWid... 各位大神,,这样的paintEvent函数为什么不能在满足条件后立即绘制直线?而是在当窗口切换之后再切换回来时直线就绘制成功了,为什么?输出信息重复输出多次
void Widget::paintEvent(QPaintEvent *event)
{
if(ui->r1->isChecked()&&ui->r2->isChecked())
{
QPainter painter(this);
QPoint pos1= ui->r1->pos();
QPoint pos2= ui->r2->pos();
int x1= pos1.x()+5;
int y1=pos1.y()+5;
int x2= pos2.x()+5;
int y2= pos2.y()+5;
painter.drawLine(QPoint(x1,y1),QPoint(x2,y2));
qDebug()<<"this is Qpainter!"<<endl;
}

}

ui->r1和ui->r2是两个radiobutton(不互斥可以同时选择)
展开
 我来答
创作者XXGDQ4kMbU
2014-05-19 · TA获得超过1281个赞
知道小有建树答主
回答量:371
采纳率:66%
帮助的人:428万
展开全部
呵呵....
当窗口切换必然触发重绘啊....

重绘多少次 输出信息输出多少次

ui->r1 和 ui->r2 状态改变又不会触发重绘...

当然是什么反耐余应都没慧兆有啦.
把他们的状态改变信号和widget的repaint solt connet 起来就有昌碧滚反应了.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式