webpopupwindow.cpp

转载 2017年01月03日 21:47:55
#include "urllineedit.h"
#include "webpage.h"
#include "webpopupwindow.h"
#include "webview.h"
#include <QIcon>
#include <QVBoxLayout>

WebPopupWindow::WebPopupWindow(QWebEngineProfile *profile)
    : m_addressBar(new UrlLineEdit(this))
    , m_view(new WebView(this))
{
    setAttribute(Qt::WA_DeleteOnClose);
    setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);

    QVBoxLayout *layout = new QVBoxLayout;
    layout->setMargin(0);
    setLayout(layout);
    layout->addWidget(m_addressBar);
    layout->addWidget(m_view);

    m_view->setPage(new WebPage(profile, m_view));
    m_view->setFocus();
    m_addressBar->setReadOnly(true);
    m_addressBar->setFavIcon(QIcon(QStringLiteral(":defaulticon.png")));

    connect(m_view, &WebView::titleChanged, this, &QWidget::setWindowTitle);
    connect(m_view, &WebView::urlChanged, this, &WebPopupWindow::setUrl);
    connect(m_view, &WebView::iconChanged, this, &WebPopupWindow::handleIconChanged);
    connect(m_view->page(), &WebPage::geometryChangeRequested, this, &WebPopupWindow::handleGeometryChangeRequested);
    connect(m_view->page(), &WebPage::windowCloseRequested, this, &QWidget::close);
}

QWebEngineView *WebPopupWindow::view() const
{
    return m_view;
}

void WebPopupWindow::setUrl(const QUrl &url)
{
    m_addressBar->setUrl(url);
}

void WebPopupWindow::handleGeometryChangeRequested(const QRect &newGeometry)
{
    m_view->setMinimumSize(newGeometry.width(), newGeometry.height());
    move(newGeometry.topLeft() - m_view->pos());
    // let the layout do the magic
    resize(0, 0);
    show();
}

void WebPopupWindow::handleIconChanged(const QIcon &icon)
{
    m_addressBar->setFavIcon(icon);
}

相关文章推荐

Cpp Primer<<学习函数-局部对象、内联函数、类的成员函数_1

函数 1.局部对象 2.内联函数 3.类的成员函数

TLD(Tracking-Learning-Detection)算法学习与源码解析(二)之runtld.cpp源码解析

本序列文章的目的是总结一下这段时间所学到的,主要分为以下几部分,本章是第二部分。 1 算法概述  2 runtld.cpp源码解析 3 tld.cpp源码解析 4 LKTracker(重点)...

【组合数+快速幂】方程的解(equation.pas/c/cpp)

方程的解(equation.pas/c/cpp)    【问题描述】     佳佳碰到了一个难题,请你来帮忙解决。     对于不定方程a1+a2+…+ak-1+ak=g(x),其中k≥2且k∈...

C++ - .h和.cpp文件的区别

转自:http://www.cnblogs.com/shelvenn/archive/2008/02/02/1062446.html 关于头文件和源文件的分别 首先,我们可以将所有东西都放在一个...

log4cpp(Log library for C++) 跟踪项目的日志

http://www.ibm.com/developerworks/cn/linux/l-log4cpp/index.html 简介: log4cpp是个基于LGPL的开源项目,是基于优秀的日志处理...

hdu2586 step5.3.4.cpp How far away ?

How far away ?                     Time Limit: 2000/...

OpenGL蓝宝书源码学习(六)第三章——Smoother.cpp

OpenGL蓝宝书源码学习(六)Smoother.cpp 混合功能的应用--抗锯齿(平滑)。

C++ 在.h文件中包含头文件和在.cpp文件中包含头文件有什么区别?

现有两个文件Test.h 和Test.cpp #include 在Test.h中包含 和在Test.cpp中包含有什么区别? 1、在cpp文件中包含.h文件,要么你要用到这个头文件中的函数或者类,要...

Android MediaPlayer 分析- MediaPlayerService.cpp

frameworks/base/libmediaplayerservice/MediaPlayerService.cpp 因为工作的平台是mx51,所以分析的是mx51 10.3的代码,本文主要分析...

Unity3D IL2CPP编译环境下的Bug

最近更新到最新版本Unity3D,使用IL2CPP发布64位IOS应用的时候发现了这个问题。它导致我原来加密的文件解压不出来了,查了一天,修正了。 1. 在github下载zip的原码,https...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)