[QT]实现点击按钮弹出图片的效果

您所在的位置:网站首页 弹窗显示图片 [QT]实现点击按钮弹出图片的效果

[QT]实现点击按钮弹出图片的效果

2023-08-30 16:04| 来源: 网络整理| 查看: 265

点击按钮弹出图片的实现

void MainWindow::btnTest() { QLabel* labelImage = new QLabel(this, Qt::Dialog |Qt::WindowCloseButtonHint); /* 去掉?按钮 */ labelImage->setWindowTitle("图片"); QString imagePath = "B:\\Image\\JPG\\3.jpg"; QFileInfo file(imagePath); if(file.exists()) { QImage image; image.load(imagePath); /* 下面这两句代码是Label跟随图片大小变化 */ //ret->resize(QSize(image.width(), image.height())); //ret->setPixmap(QPixmap::fromImage(image)); /* 这两句是图片跟随label大小变化 */ labelImage->resize(300,300); labelImage->setPixmap(QPixmap::fromImage(image.scaled(300, 300, Qt::KeepAspectRatio))); } else{ qDebug() 改为.,并且为labelImage安装事件过滤器,在程序中捕获labelImage的关闭事件,从而销毁指针; 按钮槽函数修改如下:

void MainWindow::on_pushButton_clicked() { QString imagePath = "D:\\AccountFile\\Desk\\build-Test-Desktop_Qt_5_13_0_MSVC2017_64bit-Debug\\debug\\Drunk_Kobayashi_Python.png"; QFileInfo file(imagePath); if(!file.exists()) return; QImage image; image.load(imagePath); if(image.isNull()) return; labelImage = new QLabel(this, Qt::Dialog |Qt::WindowCloseButtonHint); /* 去掉?按钮 */ labelImage->setWindowTitle("图片"); labelImage->installEventFilter(this); /* 下面这两句代码是Label跟随图片大小变化 */ //ret->resize(QSize(image.width(), image.height())); //ret->setPixmap(QPixmap::fromImage(image)); /* 这两句是图片跟随label大小变化 */ labelImage->resize(300,300); labelImage->setPixmap(QPixmap::fromImage(image.scaled(300, 300, Qt::KeepAspectRatio))); labelImage->show(); } 在头文件中定义事件过滤器 protected: bool eventFilter(QObject *obj, QEvent *event) override; 在源文件中声明如下: bool MainWindow::eventFilter(QObject *obj, QEvent *event) { if(obj == labelImage) { if(event->type() == QEvent::Close) { labelImage->removeEventFilter(this); qDebug()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3