我在使用此代码在QT中的图像周围绘制边框时遇到一些问题,谁能告诉我我所缺少的内容:
void imageLabel::paintEvent(QPaintEvent *event)
{
QLabel::paintEvent(event);
if (!m_qImage.isNull())
{
QImage qImageScaled = m_qImage.scaled(QSize(width(),height()),Qt::KeepAspectRatio,Qt::FastTransformation);
double dAspectRatio = (double)qImageScaled.width()/(double)m_qImage.width();
int iX = m_iX*dAspectRatio;
int iY = m_iY*dAspectRatio;
int iWidth = m_iWidth*dAspectRatio;
int iHeight = m_iHeight*dAspectRatio;
QPainter qPainter(this);
qPainter.drawImage(0,0,qImageScaled);
qPainter.setBrush(Qt::NoBrush);
qPainter.setPen(Qt::red);
qPainter.drawRect(iX,iY,iWidth,iHeight);
}
}
最佳答案
您可以使用QFrame
简化在QLabel
之类的小部件周围添加框架的任务。
在QtCreator中,只需选择标签并向下滚动,直到看到属性编辑器的“绿松石”部分,并在那里使用值即可。
结果看起来像这样:
希望这对您有所帮助!
关于c++ - 在图像QT周围绘制边框。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36645014/