QT 4.8.5中找不到QWebFrame,QWebPage和QWebview?

时间:2014-02-22 16:16:03

标签: qt

我在linux 64位机器上有QT 4.8.5,而QT创建者3.0.0,它无法找到QWebFrame,QWebPage和QWebView?这是我的专业档案。

*

*[code]
QT += webkitwidgets
QT += widgets
TARGET = QT_Webkitwidgets
TEMPLATE = app
SOURCES += main.cpp\
        mainwindow.cpp
HEADERS  += mainwindow.h
FORMS    += mainwindow.ui
[/code]*

* 这是主文件。

#include <QtGui/QApplication>
#include <QApplication>
#include <QDebug>
#include <QWebFrame>
#include <QWebPage>
#include <QWebView>


class MyJavaScriptOperations : public QObject {
    Q_OBJECT
public:
    Q_INVOKABLE qint32 MultOfNumbers(int a, int b) {
        qDebug() << a * b;
        return (a*b);
    }
};

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWebView *view = new QWebView();
    view->resize(400, 500);
    view->page()->mainFrame()->addToJavaScriptWindowObject("myoperations", new MyJavaScriptOperations);
    view->load(QUrl("./shreyas.html"));
    view->show();

    return a.exec();
}
#include "main.moc"

同样的问题 - 更新专业文件后。我重新运行了qmake,但问题是一样的。

TARGET = QT_Webkit
TEMPLATE = app

greaterThan(QT_MAJOR_VERSION, 4) {
    QT += widgets
    QT += webkitwidgets
} else {
    QT += webkit
}


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

3 个答案:

答案 0 :(得分:3)

模块命名在Qt4和Qt5之间发生了变化。要与Qt5和Qt4兼容,请在.pro文件中执行以下操作以包含正确的模块:

greaterThan(QT_MAJOR_VERSION, 4) {
    QT += widgets
    QT += webkitwidgets
} else {
    QT += webkit
}

答案 1 :(得分:1)

如果你重新编译Qt lib。也许你没有包含QWebKit库。

Qt configure

./ configure -webkit ...

确定您是否拥有QWebkit lib。您可以在系统库中搜索Qt的全部* .so依赖。

答案 2 :(得分:0)

所有这些类都在Qt 4中的webkit模块中,并且Qt 4也没有小部件和webkitwidgets模块,这些是Qt 5中的模块,所以在.pro文件中你应该添加{{1并删除QT += webkitQT += webkitwidgets,或仅在使用Qt5时添加这些内容。