{
/*QPainter painter(ui.Oribit_PicShowLabel);*/
if (isShowOribit)
{
QPixmap image("E:\\QtPractise\\carMainWindow\\carMainWindow\\Resources\\pic.png");
image.fill(Qt::transparent);
/*QPixmap image;*/
QPainter painter(this);
painter.begin(&image);
painter.drawRoundedRect(50, 70, 128, 128, 10, 10);
ui.Oribit_PicShowLabel->setPixmap(image); //在Oribit_PicShowLabel上显示图片
update();
painter.end();
isShowOribit=false;
}
} 手绘图形在界面上没有显示
10 个解决方案
#1
顶一下 望会的人指点一下
#2
void MyLabel::paintEvent(QPaintEvent *event)
{
QLabel::paintEvent(event);
QPainter painter(this);
QPixmap pixmap("image.png");
painter.drawPixmap(QRect(10, 10, 20, 30), pixmap);
}
这样就在label的 (10, 10)点绘出一个 宽20, 高30的 image.png图片
别在 paintEvent 函数里调用update(),小心无限递归
{
QLabel::paintEvent(event);
QPainter painter(this);
QPixmap pixmap("image.png");
painter.drawPixmap(QRect(10, 10, 20, 30), pixmap);
}
这样就在label的 (10, 10)点绘出一个 宽20, 高30的 image.png图片
别在 paintEvent 函数里调用update(),小心无限递归
#3
你好,谢谢你的回复 我想说这个是重新写一个类Mylabel继承于QLabel是吧? 那在主程序里面怎么调用呢?
#4
新继承的类和QLabel一样使用就好,只不过加上了你自己的处理的东西。
#5
图片最好不要在paintEvent里面加载
#6
图片最好不要在paintEvent里面加载
#7
你的用意是什么?,
1、从代码上看应该可以显示出image.png图片,没有显示是你的图片路径不对。与exe文件不再同一目录下,如果是资源必须加冒号.
2、你自己绘制上去是啥东西,是获取哪的图片数据还是什么?
1、从代码上看应该可以显示出image.png图片,没有显示是你的图片路径不对。与exe文件不再同一目录下,如果是资源必须加冒号.
2、你自己绘制上去是啥东西,是获取哪的图片数据还是什么?
#8
不好意思,看错代码了,你的问题是动态设置LABEL的图标,不应该在重绘中去设置呀。
#9
不好意思,看错代码了,你的问题是动态设置LABEL的图标,不应该在重绘中去设置呀。
#10
不是现成的图片 是自己绘制上去的 有什么好的建议不?
图片最好不要在paintEvent里面加载
我的意思是图片加载很占cpu的,就像楼上面说的,你在paintEvent里面调用update可能形成递归,然后每次都加载一张图片,就会导致cpu占用率很高,一般应该把需要的资源提前加载好,比如放到初始化里面或者构造函数里面。绘图的话二楼那样不行么?
#1
顶一下 望会的人指点一下
#2
void MyLabel::paintEvent(QPaintEvent *event)
{
QLabel::paintEvent(event);
QPainter painter(this);
QPixmap pixmap("image.png");
painter.drawPixmap(QRect(10, 10, 20, 30), pixmap);
}
这样就在label的 (10, 10)点绘出一个 宽20, 高30的 image.png图片
别在 paintEvent 函数里调用update(),小心无限递归
{
QLabel::paintEvent(event);
QPainter painter(this);
QPixmap pixmap("image.png");
painter.drawPixmap(QRect(10, 10, 20, 30), pixmap);
}
这样就在label的 (10, 10)点绘出一个 宽20, 高30的 image.png图片
别在 paintEvent 函数里调用update(),小心无限递归
#3
void MyLabel::paintEvent(QPaintEvent *event)
{
QLabel::paintEvent(event);
QPainter painter(this);
QPixmap pixmap("image.png");
painter.drawPixmap(QRect(10, 10, 20, 30), pixmap);
}
这样就在label的 (10, 10)点绘出一个 宽20, 高30的 image.png图片
别在 paintEvent 函数里调用update(),小心无限递归
你好,谢谢你的回复 我想说这个是重新写一个类Mylabel继承于QLabel是吧? 那在主程序里面怎么调用呢?
#4
void MyLabel::paintEvent(QPaintEvent *event)
{
QLabel::paintEvent(event);
QPainter painter(this);
QPixmap pixmap("image.png");
painter.drawPixmap(QRect(10, 10, 20, 30), pixmap);
}
这样就在label的 (10, 10)点绘出一个 宽20, 高30的 image.png图片
别在 paintEvent 函数里调用update(),小心无限递归
你好,谢谢你的回复 我想说这个是重新写一个类Mylabel继承于QLabel是吧? 那在主程序里面怎么调用呢?
#5
图片最好不要在paintEvent里面加载
#6
图片最好不要在paintEvent里面加载
#7
你的用意是什么?,
1、从代码上看应该可以显示出image.png图片,没有显示是你的图片路径不对。与exe文件不再同一目录下,如果是资源必须加冒号.
2、你自己绘制上去是啥东西,是获取哪的图片数据还是什么?
1、从代码上看应该可以显示出image.png图片,没有显示是你的图片路径不对。与exe文件不再同一目录下,如果是资源必须加冒号.
2、你自己绘制上去是啥东西,是获取哪的图片数据还是什么?
#8
不好意思,看错代码了,你的问题是动态设置LABEL的图标,不应该在重绘中去设置呀。
#9
不好意思,看错代码了,你的问题是动态设置LABEL的图标,不应该在重绘中去设置呀。
#10
不是现成的图片 是自己绘制上去的 有什么好的建议不?
图片最好不要在paintEvent里面加载
我的意思是图片加载很占cpu的,就像楼上面说的,你在paintEvent里面调用update可能形成递归,然后每次都加载一张图片,就会导致cpu占用率很高,一般应该把需要的资源提前加载好,比如放到初始化里面或者构造函数里面。绘图的话二楼那样不行么?