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);
}

第五十七篇:VS2015建立一个完整的c++工程:头文件.h 源文件.cpp,自动生成类

菜鸟一枚,之前一直在vs中一个源程序写到底,没有使用C++变成 打开VS2015 ,新建VS win32工程,前面步骤很简单,不再阐述 下面直接开始: 新建一个VC++ win32的程序, 在源文件加...

IL2CPP 深入讲解:方法调用介绍(四)

IL2CPP深入讲解:方法调用介绍 IL2CPP INTERNALS: METHOD CALLS 作者:JOSH PETERSON 翻译:Bowie 这里是本系列的第四篇博文。在这篇文章里,我们将看...

caffe之blob_demo.cpp正常运行大法

声明啊:我电脑名砸叫erkp,caffe放在caffe-master里.各位自己改咯 写个blob_demo.cpp如下: #include #include #include using ...

[转]VS2008 在h与cpp文件间切换快捷键

http://www.alteridem.net/2008/02/26/visual-studio-macro-to-switch-between-cpp-and-h-files/ I’ve bee...

caffe源码深入学习1:caffe.cpp解析

距离笔者接触深度学习已经将近半年了,在这段时间中,笔者最先接触的是lenet网络,然后就学习了2015-2016年非常火爆的fast-rcnn与faster-rcnn,到最近自己利用深度学习搞事情,笔...

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

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

神经网络与深度学习cpp(一)

第二章,只为理解感知机 代码较随意 隐藏一些问题,并未深究 核心计算变量名按书 较简 #include #include #include #include using namespa...

关于.h文件和.cpp文件

不过我在这里想讲的还是关于.h文件和.cpp文件 知道Package只是相对比较宏观的理解:我们在项目中以Package为编辑对象来扩展和修正我们的程序。编写代码时具体到应该把什么放到.h文件,又该...

java cpp py 实现 二分查找,如果没查找到,显示离代查找值最近的值

java 实现 二分查找,如果没查找到,显示离代查找值最近的值     // main     public static void main(String[] args) {         ...
  • beguile
  • beguile
  • 2017年03月24日 11:21
  • 205

在调试第一个程序watershed.cpp时出现的问题

项目-属性-配置管理器配置有问题,看一下活动解决方案平台和项目生成平台不一致,将其变得一致即可...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:webpopupwindow.cpp
举报原因:
原因补充:

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