使用QGraphicsItem 和 QGraphicsView来做图片展示,碰到图片是高清像素2000x1650左右的该如何优化。。

void_main_void 2016-03-29 02:42:53
使用QGraphicsItem 和 QGraphicsView来做图片展示,碰到图片是高清像素2000x2000左右的该如何优化。。

图片比较小还好。但是碰到那种客户需要直接使用高清2000x1650大小图片的我真是无力解决了。。有啥办法还能优化吗?

下面是我paint里面的画图代码。。。我真是无解了。。

void CImageItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
if (m_loadImage == true)
{
m_loadImage = false;

m_imagePixmapBack.load(m_imagePath);
m_imagePixmap = m_imagePixmapBack;

QSize imageUpSize = imageZoom(
QSize(m_nImageSize, m_nImageSize),
QSize(m_imagePixmap.width(), m_imagePixmap.height()));

m_imagePixmap = m_imagePixmap.scaled(imageUpSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
}

if (option->state & QStyle::State_Selected)
{
setBackgroundFrameColor(painter, m_mouseClickedBackground, m_mouseClickedFrame);
}
else if (m_startShow == mouseEnter)
{
setBackgroundFrameColor(painter, m_mouseEnterBackground, m_mouseEnterFrame);
}

//计算将图片显示居中。 高度-13,给底部留一些空间显示文字
int sh = m_frameSize.height() - 20 - m_imagePixmap.height();
int sw = (m_frameSize.width() == m_imagePixmap.width()) ? 0 : m_frameSize.width() / 2 - m_imagePixmap.width() / 2;

painter->drawPixmap(sw, sh, m_imagePixmap);

painter->drawText(QRect(0, 0, m_frameSize.width(), m_frameSize.height() - 5), Qt::AlignCenter | Qt::AlignBottom, m_text);
}
...全文
428 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
void_main_void 2016-04-01
  • 打赏
  • 举报
回复
引用 2 楼 foruok 的回复:
还有一个方法,对于大的图片,先获取尺寸,然后加载时就根据显示尺寸加载指定尺寸的图片或者加载缩略图。
是的。发完帖子晚上就想到了先预先获得图片的大小存放数据库中。QPixmap不允许多线程,QImage可行。。。
foruok 2016-03-30
  • 打赏
  • 举报
回复
还有一个方法,对于大的图片,先获取尺寸,然后加载时就根据显示尺寸加载指定尺寸的图片或者加载缩略图。
foruok 2016-03-30
  • 打赏
  • 举报
回复
你在paint里load,scaled,会卡在那里。 在一个线程里,用QImage加载、缩放,界面上显示等待图标,线程处理完毕后,发送给UI线程去显示。
《计算机组装与维修》调研报告 一、调研目的 随着科技的进步和信息事业的发展,尤其是计算机技术的发展与网络应用的逐步普及 ,电脑已成为人们工作和生活中不可缺少的东西。IT行业迅猛发展,就业工作岗位也比 比皆是,在最近几年内,IT职场排行榜仍旧处于所有行业中的"老大"。只有对基础知识 的学习才可以受用终身。 关于计算机组装与维修中,掌握主机部件的安装与拆卸的方法,培养良好的观察为、 沟通协作、查找资料能力。 调查目的:了解计算机硬件市场行情;了解商家对大学生市场的需求情况。 调查范围:计算机硬件经营销售人员,大学生消费者。 调查地点:百脑会,校园 调查方式:寻问同学、现场考察、网络查询。 调查结果: 对于 CPU 的调查:CPU 从最初发展至今已经有二十多年的历史了,这期间,按照其处理信息的字长,CPU 可以分为:四位微处理器、八位微处理器、十六位微处理器、三十二位微处理器以及六 十四位微处理器等等。 二、调研内容 (一)安装选购 根据市场调查,拟出选购一台微机的硬件选配计划。 CPU AMD 3000+ 盒装 内存 金邦512/DRR2 硬盘 ST160G/7200 主板 华硕M2V 显示卡 七彩虹 镭风X1650XT-GD3 UP烈 机箱 金河田ATX+P4300 键盘鼠标 光电套装七彩 光驱 三星DVD 音箱 麦博 M-111 (二)调查显示 如今,Intel 的 CPU 和其兼容产品统治着微型计算机——PC 的大半江山,但是除了 Intel 或AMD 的CPU,还是你可能听说过的其他一些CPU,如HP 的PA-RISC,IBM 的Power4 和 Sun 的UltraSparc 等,只是它们都是精简指令集运算(RISC)处理器,使用Unix 的专利操作系统,例如IBM 的AIX 和Sun 的Solaris 等。虽然设计方式和工作原理的过程有区别,但不同处理器依然有很多相似之处。从外 表看来,CPU 常常是矩形或正方形的块状物,通过密密麻麻的众多管脚与主板相连,在这块小小的硅 片上,密布着数以百万计的晶体管,它们好像大脑的神经元,相互配合协调,完成着各 种复杂的运算和操作。Intel 发布的第一颗处理器4004 仅仅包含2000 个晶体管,而目前最新的Intel Pentium 8400EE 处理器包含超过2.3 亿个晶体管,集成度提高了十万倍,这可以说是当今最复杂的集成电路了。随着线宽的 不断降低,以往芯片内部使用的铝连线的导电性能将不敷使用,AMD 在其K7 系列开始采用铜连线技术。而现在这一技术已经得到了广泛应用。随着科技的发展,计 算机硬件价格每一天都在波动,新的产品不断更新换代,生产厂商为了吸引消费群体, 不断推出各种优惠活动;许多大学生对计算机各部件功能及整体功能的认知水平还较低 ,甚至对一些部件根本不了解,这也给个别销售者以可趁之机,利用高价格、低配置欺 骗消费者;一些消费者对自己需要用的配置功能不够了解,而买到不需要的高价格高配 置的产品,在不久产品更新换代时价格大幅下跌而感觉后悔不已;有些消费者因为不够 了解所需商品,而买到比自己需要的配置低的产品,从而给自己的工作生活带来极大地 不便。 CPU 制造工艺的趋势是向密集度愈高的方向发展。密度愈高的IC 电路设计,意味着在同样大小面积的 IC 中,可以拥有密度更高、功能更复杂的电路设计。 (三)主板安装 目前的主板市场仍是Intel 领头,各兼容厂商跟进的局面。放眼未来,随着Intel 820 等新系列主板和AMD K7 主板的出现,主板市场将更有一场好戏。对于带有刚出不久的i7 的笔记本,似乎消费者们并不是很看好。性对于较高的性能,使得热量随之增多,若不 使用散热器,对电脑伤害较大,给使用者带来不便。 对于笔记本市场的调查:为了竞争,各品牌之间降价优惠均有出现。由于戴尔电脑选择 厂家直销 , 省去经销商里面的利润成分,所以在性价比方面略占优势。如今性价比相对较高的品牌 :华硕、宏碁、戴尔。 在配置主板、CPU、内存时应注意的问题,配置错误会出现的问题如下: 1. 在配置主板、CPU、内存时应注意他们之间的兼容性,和参数以及运行数率等问题。大多 数计算机机箱的底座上都会有多个固定孔孔位,可使主板确实固定且不会短路,使用铜柱 或者使用塑料卡榫都可以将主板固定到机箱的基座上。最好的方式是使用铜柱来固定主 板,首先小心的寻找主板上的固定孔位,将这些孔对准基座上的固定孔。如果孔能对准 并且有螺丝孔,就表示可以使用铜柱来固定主板。如果孔对准但是只有凹槽,侧表示只 能使用塑料卡榫来固定主板。注意主板固定至定位后,在装上外壳前,请再次检查以确 保所有安装都正确无误。 2. 如果错误会出现开不起机器,开机报警,蓝屏,驱动程序用不了等。如果用户使用专门 为INTEL PENTI
Everest ultimate(原名AIDA32) Everest ultimate是一个测试软硬件系统信息的工具,它可以详细的显示出PC每一个方面的信息。支持上千种(3400+)主板,支持上百种(360+)显卡,支持对并口/串口/USB这些PNP设备的检测,支持对各式各样的处理器的侦测。目前Everest Home已经能支持包括中文在内的30种语言,让你轻松使用。而且经过几次大的更新,现在的Everest已经具备了一定的硬件测试能力,让您对自己电脑的性能有个只管的认识。最新版本更新如下:1.修正了Intel i940/945/955/975/E7230芯片组信息显示方面的错误。2.增加对Ageia无理卡的支持。3.修正了Geforce 6800XT显卡信息显示方面的错误。 最新版本更新如下: 1.修正了Intel i940/945/955/975/E7230芯片组信息显示方面的错误。 2.增加对Ageia无理卡的支持。 3.修正了Geforce 6800XT显卡信息显示方面的错误。 硬件监视增加了对Vista边栏的支持,用户可以在Vista边栏中直接看到自己设备的相关信息. -增加了IPMI System Event Log和IPMI Sensor信息的显示支持. -增加了ACPI BIOS信息列表支持. -增加了扩展OpenGL信息列表支持. -改善了System Stability Test测试. - 增加了对最新硬件信息的支持,包括AMD Quad FX (4x4) Platform; ATI Mobility Radeon X1900, Radeon X1300 XT, Radeon X1650 Pro/Radeon X1950 GT; Intel i945GC; nVIDIA GeForce 8800 GTS/GTX ; nVIDIA nForce 650i/680i; ServerWorks BCM5785

16,228

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧