我可以在我的QLabels
上显示边框:
但是当我尝试在其中显示像素图时,边框消失了:
我在QLabel
子类的构造函数中设置了框架属性:
ObjectSlot::ObjectSlot(int index) {
setIndex(index);
setFrameShape(QFrame::StyledPanel);
setFrameShadow(QFrame::Raised);
setLineWidth(3);
setMidLineWidth(3);
setAlignment(Qt::AlignCenter);
return;
}
pixmap在paintEvent
:
void ObjectSlot::paintEvent(QPaintEvent* event) {
QPixmap* image = new QPixmap("://images/Box.png");
setPixmap(image->scaled(width(),height(),Qt::KeepAspectRatio));
QLabel::paintEvent(event);
}
为什么边界会消失?为什么生活如此残酷?
答案 0 :(得分:2)
正如医生所说:
设置像素图会清除以前的所有内容。好友的快捷方式,如果 任何,被禁用。
所以看起来这是不可能的,但是我找到了下一个解决方案,你不应该setPixmap()
,当你绘制所有正确的标签时,你只需要drawPixmap()
:
void ObjectSlot::paintEvent(QPaintEvent *e)
{
QLabel::paintEvent(e);
//label painted
QPainter p(this);
QPixmap image("G:/2/qt.png");
p.drawPixmap(QPoint(1,1),image.scaled(100,100,Qt::KeepAspectRatio));
}
结果:
不是最好的解决方案,因为你应该根据自己的目的调整它,但目前总比没有好。