使用QT编程实现图像显示
1、使用vs2013新建一个Qt Application工程ImageView,如下图:
2、2. 在 ImageView类里添加一个私有成员变量,代码如下:
QImage m_img;
3、添加一个打开图像文件的菜单项,代码如下:
ImageView::ImageView(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
QAction* myAc1 = new QAction(this);
myAc1->setText(QString::fromLocal8Bit("打开"));
myAc1->setStatusTip("open image");
connect(myAc1, SIGNAL(triggered()), this, SLOT(OpenImage()));
QMenu* fileMenu = menuBar()->addMenu(QString::fromLocal8Bit("文件"));
fileMenu->addAction(myAc1);
}
效果图如下:
4、添加槽函数OpenImage的响应代码:
void ImageView::OpenImage()
{
QString lstFile = QFileDialog::getOpenFileName(this, tr("Open Image"), "", tr("JPG (*.jpg);; BMp (*.bmp)"));
if (lstFile.isEmpty())
{
return;
}
m_img.load(lstFile); // 加载文件
repaint(); // 激发绘图函数
}
5、添加图像绘制函数,具体如下:
void ImageView::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
if (!m_img.isNull())
painter.drawImage(0, 0, m_img);
QWidget::paintEvent(event);
}
6、运行效果图如下: