QtWebEngine 与 MinGW 的问题



  • 由于 Chromium 不支持通过 MinGW 编译,所以 QtWebEngine 本身也不能被 MinGW 所支持。

    可不可以预先使用 VS 2013 编译 QtWebEngine 模块,将其制作成 Qt 插件,插件的话,应该可以去掉 VS 的头文件依赖的。然后以插件的方式开发 QML,这样可不可行呢?


  • 网站研运

    @qyvlik 虽然这是一个办法,不过我觉得可能有一些问题:
    大家都知道调试版的QML的插件是不能和发行版的Qt主程序相结合的。于是我们要调整QML插件和Qt主程序都为同一个版本才行。这样的话,对编译器的要求就必须一致了。
    如果说QtWebEngine用MSVC编译的话,那么在动态链接的时候,寻找函数表的规则仍用MinGW的去找,那么可能找不到QtWebEngine的符号也说不定。



  • 新版本5.6也不行吗,这个问题属于什么方面的。


  • 网站研运

    @flowerlove 5.6不知道是否可以,这个看看Chromium的编译环境了,如果Chromium能够支持MinGW的话当然好。还有,Chromium好像是GPL协议的。



  • MSVC和GCC编译的c++库不能通用,插件也一样,更别说chromium了
    估计得使用activex做一个转换层或者dbus之类的通信系统.



  • @flowerlove 不行的,我在qt官网看了,不支持mingw编译,我以前用过vs2013的64位,但当时记得是因为汉语的不兼容把我恶心到了,就是源码文件的格式问题。



  • @exat500g 那就不管他了,因为 VS 开源了,所以 ChromiumMinGW 的支持计划也就自然流产了。现在 Qt 在手机设备上,试图使用 QtWebView 也就是在 QtSurface 上绘制原生网页作为 Qt 在移动端上网页的解决方案。


Log in to reply
 

走马观花

最近的回复

  • 萌梦 男孩,女孩,和蛋

    menghome.png

    read more
  • 设计模式-工厂模式

    使用qt/qml来演示设计模式效果,便于学习理解

    1)定义创建对象的接口,封装对象的创建
    2)使具体化类的工作延迟到工厂子类中

    bg.png
    image.png

    1. 工厂类

    createProduct使用了参数来选择要创建哪个产品

    #ifndef FACTORY_H #define FACTORY_H #include <QObject> class Product; class QString; class Factory: public QObject { Q_OBJECT public: virtual ~Factory() = 0; virtual Product* createProduct(QString type) = 0; protected: Factory(); }; class ConcreteFactory: public Factory { Q_OBJECT public: ~ConcreteFactory(); ConcreteFactory(); public slots: Product* createProduct(QString type); }; #endif // FACTORY_H #include "factory.h" #include "product.h" #include <QtQml/qqml.h> Factory::~Factory() { } Factory::Factory() { qmlRegisterType<Product>("Product", 1, 0, "Product"); } ConcreteFactory::~ConcreteFactory() { } ConcreteFactory::ConcreteFactory() { } Product *ConcreteFactory::createProduct(QString type) { if(type == "boy") return static_cast<Product *>(new ConcreteProduct1()); else if(type == "girl") return static_cast<Product *>(new ConcreteProduct2()); return static_cast<Product *>(new ConcreteProduct1()); } 2 产品类

    一个产品是萌梦男,一个产品是萌梦女

    #ifndef PRODUCT_H #define PRODUCT_H #include <QObject> class Product: public QObject { Q_OBJECT public: virtual ~Product() = 0; Q_PROPERTY(QString icon READ icon NOTIFY iconChanged) QString m_icon; QString icon() const { return m_icon; } signals: void iconChanged(QString icon); protected: Product(); signals: public slots: }; class ConcreteProduct1: public Product { Q_OBJECT public: ~ConcreteProduct1(); ConcreteProduct1(); }; class ConcreteProduct2: public Product { Q_OBJECT public: ~ConcreteProduct2(); ConcreteProduct2(); }; #endif // PRODUCT_H #include "product.h" Product::~Product() { } Product::Product() { } ConcreteProduct1::~ConcreteProduct1() { } ConcreteProduct1::ConcreteProduct1() { m_icon = "qrc:/images/boy.png"; } ConcreteProduct2::~ConcreteProduct2() { } ConcreteProduct2::ConcreteProduct2() { m_icon = "qrc:/images/girl.png"; } 3. main.qml

    使用timer,canvas,listview等实现一个自动化生产的动画效果

    源代码

    Fork me on Gitee

    read more
  • blender建模 章鱼
    捕获2.PNG 😵

    read more

关注我们

微博
QQ群