2016-04-15 135 views
0

我有这个代码的一些问题,提请各地的QT图像的边界,任何人都可以告诉我,我缺少什么:围绕图像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); 
} 
} 
+0

只是为了提供更多信息,我得到了第一个void decleration的错误错误....以及关于m_iwidth和M_height的错误。 – Owenb11

+0

如果您从某处复制了此代码,请记住以m_开头的变量通常表示应该在您的类中声明的成员变量。 –

+0

你知道任何简单的方法来绘制一个矩形周围的图像使用QT,这是非常新的和有很少的知识...对不起 – Owenb11

回答

1

您可以使用QFrame简化周围添加一帧的任务像QLabel这样的小工具。

QtCreator,只需选择标签并向下滚动,直到您看到属性编辑器的绿松石部分,并使用其中的值进行播放。

QFrame settings in properties editor of QtCreator

结果看起来是这样的:

A QLabel with QFrame

希望这一起帮助你!