本文整理汇总了C++中QWebHitTestResult::pixmap方法的典型用法代码示例。如果您正苦于以下问题:C++ QWebHitTestResult::pixmap方法的具体用法?C++ QWebHitTestResult::pixmap怎么用?C++ QWebHitTestResult::pixmap使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QWebHitTestResult
的用法示例。
在下文中一共展示了QWebHitTestResult::pixmap方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: trapElementAtPos
void WBWebTrapWebView::trapElementAtPos(const QPoint& pos)
{
QWebHitTestResult htr = page()->currentFrame()->hitTestContent(pos);
if (!htr.pixmap().isNull())
{
emit pixmapCaptured(htr.pixmap(), false);
}
else if (mCurrentContentType == ObjectOrEmbed)
{
QString embedSelector = QString("document.elementFromPoint(%1, %2)").arg(pos.x()).arg(pos.y());
QVariant tagName = page()->currentFrame()->evaluateJavaScript(embedSelector + ".tagName");
QVariant innerHTML = page()->currentFrame()->evaluateJavaScript(embedSelector + ".innerHTML");
qDebug() << "innerHTML" << innerHTML;
if (tagName.toString().toLower() == "object")
{
embedSelector = QString("document.elementFromPoint(%1, %2).getElementsByTagName('object')[0]")
.arg(pos.x()).arg(pos.y());
}
QString querySource = embedSelector + ".src";
QVariant resSource = page()->currentFrame()->evaluateJavaScript(querySource);
qDebug() << "resSource" << resSource;
QString source = resSource.toString();
QString queryType = embedSelector + ".type";
QVariant resType = page()->currentFrame()->evaluateJavaScript(queryType);
QString type = resType.toString();
qDebug() << "resType" << resType;
if (source.trimmed().length() > 0)
{
emit objectCaptured(QUrl(page()->currentFrame()->url().toString() + "/" + source), type,
htr.boundingRect().width(), htr.boundingRect().height());
UBApplication::boardController->downloadURL(QUrl(source), QPointF(0.0, 0.0));
UBApplication::applicationController->showBoard();
}
}
else if (mCurrentContentType == Input)
{
QString embedCode = potentialEmbedCodeAtPos(pos);
if (embedCode.length() > 0)
{
emit embedCodeCaptured(embedCode);
}
}
else if (mCurrentContentType == ElementByQuery)
{
webElementCaptured(page()->currentFrame()->url(), mElementQuery);
}
}
示例2: SendToCGLX
void csWebView::SendToCGLX()
{
//printf("Hello at x: %d y: %d\n", hit_pos.x(), hit_pos.y());
QWebFrame *tframe=page()->currentFrame ();
QWebHitTestResult hitresult = tframe->hitTestContent ( hit_pos );
if(!hitresult.isNull())
{
QPixmap img = hitresult.pixmap();
if(!img.isNull())
{
//printf("Width: %d Height: %d Link: %s\n",img.width(), img.height(),hitresult.imageUrl().toString().toStdString().c_str());
emit send_image(img.width(), img.height() , hitresult.imageUrl());
}
}
}
示例3: highliteElementAtPos
void WBWebTrapWebView::highliteElementAtPos ( const QPoint& pos)
{
mCurrentContentType = Unknown;
if(page() && page()->currentFrame())
{
QWebHitTestResult htr = page()->currentFrame()->hitTestContent (pos);
QRect pageHtr = htr.boundingRect().translated(htr.frame()->pos());
QRect updateRect = mWebViewElementRect.united(pageHtr);
updateRect = updateRect.adjusted(-8, -8, 8, 8);
mDomElementRect = htr.boundingRect();
if (!htr.pixmap().isNull())
{
mCurrentContentType = Image;
qDebug() << "found pixmap at " << htr.boundingRect();
}
else
{
QWebElement element = htr.element();
QString tagName = element.tagName().toLower();
if (tagName == "object"
|| tagName == "embed")
{
mCurrentContentType = ObjectOrEmbed;
}
else if ((tagName == "input") || (tagName == "textarea"))
{
QString ec = potentialEmbedCodeAtPos(pos);
if (ec.length() > 0)
{
qDebug() << "found input data \n\n" << ec;
mCurrentContentType = Input;
}
}
else
{
QString tagName = htr.element().tagName();
QString id = htr.element().attribute("id", "");
QWebElement el = htr.element();
QString idSelector = tagName + "#" + id;
bool idSuccess = (el == el.document().findFirst(idSelector));
if (idSuccess)
{
mElementQuery = idSelector;
mCurrentContentType = ElementByQuery;
}
else
{
//bool isValid = true;
QWebElement elParent = el.parent();
QWebElement currentEl = el;
QString path = tagName;
QStringList pathElements;
do
{
QWebElement someSibling = elParent.firstChild();
int index = 0;
bool foundIndex = false;
do
{
if (someSibling.tagName() == currentEl.tagName())
{
if (someSibling == currentEl)
{
foundIndex = true;
}
else
index++;
}
someSibling = someSibling.nextSibling();
}
while(!someSibling.isNull() && !foundIndex);
QString part;
if (index > 0)
part = QString("%1:nth-child(%2)").arg(currentEl.tagName()).arg(index);
else
part = currentEl.tagName();
pathElements.insert(0, part);
currentEl = elParent;
elParent = elParent.parent();
} while(!elParent.isNull());
//QString idSelector = tagName + "#" + id;
//.........这里部分代码省略.........
示例4: contextMenuEvent
void CustomWebView::contextMenuEvent (QGraphicsSceneContextMenuEvent *e)
{
QPointer<QMenu> menu (new QMenu ());
QWebHitTestResult r = page ()->
mainFrame ()->hitTestContent (e->pos ().toPoint ());
IHookProxy_ptr proxy (new Util::DefaultHookProxy ());
emit hookWebViewContextMenu (proxy, this, e, r,
menu, WVSStart);
if (!r.linkUrl ().isEmpty ())
{
QUrl url = r.linkUrl ();
QString text = r.linkText ();
if (XmlSettingsManager::Instance ()->
property ("TryToDetectRSSLinks").toBool ())
{
bool hasAtom = text.contains ("Atom");
bool hasRSS = text.contains ("RSS");
if (hasAtom || hasRSS)
{
LeechCraft::Entity e;
if (hasAtom)
{
e.Additional_ ["UserVisibleName"] = "Atom";
e.Mime_ = "application/atom+xml";
}
else
{
e.Additional_ ["UserVisibleName"] = "RSS";
e.Mime_ = "application/rss+xml";
}
e.Entity_ = url;
e.Parameters_ = LeechCraft::FromUserInitiated |
LeechCraft::OnlyHandle;
bool ch = false;
emit couldHandle (e, &ch);
if (ch)
{
QList<QVariant> datalist;
datalist << url
<< e.Mime_;
menu->addAction (tr ("Subscribe"),
this,
SLOT (subscribeToLink ()))->setData (datalist);
menu->addSeparator ();
}
}
}
menu->addAction (tr ("Open &here"),
this, SLOT (openLinkHere ()))->setData (url);
menu->addAction (tr ("Open in new &tab"),
this, SLOT (openLinkInNewTab ()))->setData (url);
menu->addSeparator ();
menu->addAction (tr ("&Save link..."),
this, SLOT (saveLink ()));
QList<QVariant> datalist;
datalist << url
<< text;
menu->addAction (tr ("&Bookmark link..."),
this, SLOT (bookmarkLink ()))->setData (datalist);
menu->addSeparator ();
if (!page ()->selectedText ().isEmpty ())
menu->addAction (pageAction (QWebPage::Copy));
menu->addAction (tr ("&Copy link"),
this, SLOT (copyLink ()));
if (page ()->settings ()->testAttribute (QWebSettings::DeveloperExtrasEnabled))
menu->addAction (pageAction (QWebPage::InspectElement));
}
else if (page ()->selectedText ().contains (UrlInText))
{
menu->addAction (tr ("Open as link"),
this, SLOT (openLinkInNewTab ()))->
setData (page ()->selectedText ());
}
emit hookWebViewContextMenu (proxy, this, e, r,
menu, WVSAfterLink);
if (!r.imageUrl ().isEmpty ())
{
if (!menu->isEmpty ())
menu->addSeparator ();
menu->addAction (tr ("Open image here"),
this, SLOT (openImageHere ()))->setData (r.imageUrl ());
menu->addAction (tr ("Open image in new tab"),
this, SLOT (openImageInNewTab ()));
menu->addSeparator ();
menu->addAction (tr ("Save image..."),
this, SLOT (saveImage ()));
QAction *spx = menu->addAction (tr ("Save pixmap..."),
//.........这里部分代码省略.........