我在使用此代码在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周围绘制边框。-LMLPHP

结果看起来像这样:

c++ - 在图像QT周围绘制边框。-LMLPHP

希望这对您有所帮助!

关于c++ - 在图像QT周围绘制边框。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36645014/

10-12 20:32