我在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
答案 0 :(得分:3)
模块命名在Qt4和Qt5之间发生了变化。要与Qt5和Qt4兼容,请在.pro文件中执行以下操作以包含正确的模块:
greaterThan(QT_MAJOR_VERSION, 4) {
QT += widgets
QT += webkitwidgets
} else {
QT += webkit
}
答案 1 :(得分:1)
如果你重新编译Qt lib。也许你没有包含QWebKit库。
./ configure -webkit ...
确定您是否拥有QWebkit lib。您可以在系统库中搜索Qt的全部* .so依赖。
答案 2 :(得分:0)
所有这些类都在Qt 4中的webkit
模块中,并且Qt 4也没有小部件和webkitwidgets模块,这些是Qt 5中的模块,所以在.pro文件中你应该添加{{1并删除QT += webkit
和QT += webkitwidgets
,或仅在使用Qt5时添加这些内容。