资源简介
解决QT大图片加载失败问题:QImage加载大图片时,malloc返回NULL,导致图片加载失败。
用QT4.8,高版本改改头文件就可以了。
代码片段和文件信息
#include
#include
#include “imageviewer.h“
#include “qbmploader.h“
#include “qimagescrollarea.h“
#include “QImageContent.h“
//! [0]
ImageViewer::ImageViewer()
{
imageLabel = new QLabel;
imageLabel->setBackgroundRole(QPalette::base);
imageLabel->setSizePolicy(QSizePolicy::Ignored QSizePolicy::Ignored);
imageLabel->setScaledContents(true);
scrollArea = new QImageScrollArea;
setCentralWidget(scrollArea);
createActions();
createMenus();
setWindowtitle(tr(“Image Viewer“));
resize(500 400);
}
//! [0]
//! [1]
void ImageViewer::open()
//! [1] //! [2]
{
QString fileName = QFileDialog::getOpenFileName(this
tr(“Open File“) QDir::currentPath());
if (!fileName.isEmpty()) {
// QImage image;//(fileName);
// StoreBitmap::QBmpLoader loader;
QImageContent* content
= qobject_cast(scrollArea->widget());
if(content!=NULL){
content->setImagePath(fileName);
}
// loader.read(&image);
// if (image.isNull()) {
// QMessageBox::information(this tr(“Image Viewer“)
// tr(“Cannot load %1.“).arg(fileName));
// return;
// }
//! [2] //! [3]
// imageLabel->setPixmap(QPixmap::fromImage(image));
// content->resize(image.width()image.height());
// HBITMAP hBmp = (HBITMAP)LoadImageA( NULL fileName.toLocal8Bit().data()//L“z:\\bg4.bmp“
// IMAGE_BITMAP
// 0 0
// LR_CREATEDIBSECTION|LR_LOADFROMFILE);
// DWORD error = GetLastError();
// QPixmap pixmap = QPixmap::fromWinHBITMAP(hBmp);
// imageLabel->setPixmap(pixmap);
// Deleteobject(hBmp);
//! [3] //! [4]
scaleFactor = 1.0;
printAct->setEnabled(true);
fitToWindowAct->setEnabled(true);
updateActions();
// if (!fitToWindowAct->isChecked())
// imageLabel->adjustSize();
}
}
//! [4]
//! [5]
void ImageViewer::print()
//! [5] //! [6]
{
Q_ASSERT(imageLabel->pixmap());
#ifndef QT_NO_PRINTER
//! [6] //! [7]
QPrintDialog dialog(&printer this);
//! [7] //! [8]
if (dialog.exec()) {
QPainter painter(&printer);
QRect rect = painter.viewport();
QSize size = imageLabel->pixmap()->size();
size.scale(rect.size() Qt::KeepAspectRatio);
painter.setViewport(rect.x() rect.y() size.width() size.height());
painter.setWindow(imageLabel->pixmap()->rect());
painter.drawPixmap(0 0 *imageLabel->pixmap());
}
#endif
}
//! [8]
//! [9]
void ImageViewer::zoomIn()
//! [9] //! [10]
{
scaleImage(1.25);
}
void ImageViewer::zoomOut()
{
scaleImage(0.8);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-09-25 13:30 imageviewer\
文件 6133 2018-09-25 11:27 imageviewer\Makefile
文件 11589 2018-09-25 11:27 imageviewer\Makefile.Debug
文件 11762 2018-09-25 11:27 imageviewer\Makefile.Release
文件 1891 2017-12-21 15:27 imageviewer\QBmpLoader.h
文件 8550 2018-03-01 09:38 imageviewer\imageviewer.cpp
文件 235 2012-11-23 18:11 imageviewer\imageviewer.desktop
文件 3169 2017-12-19 14:16 imageviewer\imageviewer.h
文件 1059 2017-12-19 14:09 imageviewer\imageviewer.pro
文件 14332 2018-06-20 14:58 imageviewer\imageviewer.pro.user
文件 14432 2018-09-25 13:09 imageviewer\imageviewer.pro.user.2.5pre1
文件 7549 2017-12-18 10:09 imageviewer\imageviewer2.cpp
文件 1156 2017-12-18 10:09 imageviewer\imageviewer2.h
文件 2347 2017-12-19 10:18 imageviewer\main.cpp
文件 266 2018-09-25 11:27 imageviewer\ob
文件 286 2018-09-25 11:27 imageviewer\ob
文件 49768 2018-04-12 20:28 imageviewer\qbmploader.cpp
文件 3477 2018-04-12 20:26 imageviewer\qimagecontent.cpp
文件 823 2018-04-11 16:44 imageviewer\qimagecontent.h
文件 4113 2018-09-25 11:28 imageviewer\qimagescrollarea.cpp
文件 868 2018-09-25 11:27 imageviewer\qimagescrollarea.h
相关资源
- Qt 根据手绘板的压力值画线的一个小
- PyQt5系列教程(二)利用QtDesigner设计
- Qt下 基于smtp协议的邮件发送客户端源
- QT3显示图片小程序
- TrafficMonitoring.zip
- QT登陆页面跳转到主界面的源代码
- ListView自定义Item
- QT4.8.5.zip
- qt_opencv_zbar20181218二维码测距和识别检
- qt5 qftp官方源码
- qt的excel读取并显示到tablewidget的封装
- Qt录音机QAudioInput
- QT 软键盘_支持中文
- Qt调用系统摄像头
- Qt5主窗体:文本编辑器
- Qt绘制雷达表盘
- Qt天气预报程序
- QT5 UDP方式发送数据
- 基于qt的学生信息管理系统
- 零基础学习QTP自动化测试视频教程.
- 源码:Qt上位机(温度曲线图,txt文件
- QT 可使用的简易计算器
- qtListwidget控件使用
- QT实现的模拟win+r窗口
- QT计算器界面和计算器功能实现
- QT浮动窗口dock
- qt做一个贪吃蛇小游戏
- QT做一个简易浏览器
- Qt多客户端聊天程序.zip
- tableview连接数据库后导入导出类.zip
评论
共有 条评论