当前位置: 首页>>代码示例>>C++>>正文


C++ CustomItem::pixmap方法代码示例

本文整理汇总了C++中CustomItem::pixmap方法的典型用法代码示例。如果您正苦于以下问题:C++ CustomItem::pixmap方法的具体用法?C++ CustomItem::pixmap怎么用?C++ CustomItem::pixmap使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CustomItem的用法示例。


在下文中一共展示了CustomItem::pixmap方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: prepareImage

void ViewWorkerThread::prepareImage(QList<QGraphicsItem*> items)
{
	stopLoading();

	QVector<CustomItem*> itemsNotLoaded;

	QVector<CustomItem*> itemsBeingProcessed;

	//Find all items whose images are not loaded.
	for (int index = 0; index < items.count(); index++)
	{
		CustomItem* item = dynamic_cast<CustomItem*> (items[index]);

		if ((true == item->pixmap().isNull())
						||
			((nItemWidth > (item->pixmap().width() + CustomItem::getItemMargin()))
						&&
			 (nItemHeight > (item->pixmap().height() + CustomItem::getItemMargin()))))
		{
			if (EProcessingState::eNone == item->processingState())
			{
				itemsNotLoaded.push_front(item);
			}
			else if (EProcessingState::eProcessed == item->processingState())
			{
				item->updateItem();

				item->setProcessing(EProcessingState::eRenderred);
			}
		}
		else if ((EProcessingState::eNone != item->processingState()) 
									&&
				(EProcessingState::eRenderred != item->processingState()))
		{
			item->updateItem();

			item->setProcessing(EProcessingState::eRenderred);
		}
	}

	CustomGraphicsView* parentView = dynamic_cast<CustomGraphicsView*> (parent());

	QList<QGraphicsItem *> viewItems = parentView->items();

	//Clear images from items that are not currently viewed. 
	//(To optimize memory consumption)
	for (int index = 0; index < viewItems.count(); index++)
	{
		if (!items.contains(viewItems[index]))
		{
			CustomItem* item = dynamic_cast<CustomItem*> (viewItems[index]);

			item->setPixmap(0);

			item->setProcessing(EProcessingState::eNone);
		}
	}

	if (itemsNotLoaded.isEmpty())
	{
		return;
	}

	m_ItemsNotLoaded.clear();

	m_ItemsNotLoaded = itemsNotLoaded;

	//Load images.
	m_pImageLoadThreadWatcher->setFuture(QtConcurrent::mapped(m_ItemsNotLoaded, readEmf));
}
开发者ID:GPKarthik,项目名称:QTPLA1,代码行数:70,代码来源:viewworkerthread.cpp


注:本文中的CustomItem::pixmap方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。