当前位置:编程学习 > wap >>

关于Qt5.1的webkit

大家好,我在学Qt的时候,想学一下webkit,然后根据文档想显示个网页。代码如下:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWebView *view = new QWebView();
    view->load(QUrl("http://www.csdn.net"));
    view->show();
    return a.exec();
}


已经加了头文件
#include <QtWebKit>
#include <QtWebKitWidgets>


在pro文件里也加了
QT += core gui webkit webkitwidgets network


结果在编译时出现以下错误
19:41:46: 为项目test1执行步骤 ...
19:41:46: 正在启动 "/opt/Qt5.1.0/5.1.0/gcc/bin/qmake" /home/CentOS/QtProjects/test1/test1.pro -r -spec linux-g++ CONFIG+=debug CONFIG+=declarative_debug CONFIG+=qml_debug

19:41:46: 进程"/opt/Qt5.1.0/5.1.0/gcc/bin/qmake"正常退出。
19:41:46: 正在启动 "/usr/bin/make" 

g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_QML_LIB -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/Qt5.1.0/5.1.0/gcc/mkspecs/linux-g++ -I../test1 -I/opt/Qt5.1.0/5.1.0/gcc/include -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKitWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQuick -I/opt/Qt5.1.0/5.1.0/gcc/include/QtOpenGL -I/opt/Qt5.1.0/5.1.0/gcc/include/QtPrintSupport -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQml -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKit -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtSensors -I/opt/Qt5.1.0/5.1.0/gcc/include/QtNetwork -I/opt/Qt5.1.0/5.1.0/gcc/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc/include/QtCore -I. -I. -o main.o ../test1/main.cpp
g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_QML_LIB -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/Qt5.1.0/5.1.0/gcc/mkspecs/linux-g++ -I../test1 -I/opt/Qt5.1.0/5.1.0/gcc/include -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKitWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQuick -I/opt/Qt5.1.0/5.1.0/gcc/include/QtOpenGL -I/opt/Qt5.1.0/5.1.0/gcc/include/QtPrintSupport -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQml -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKit -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtSensors -I/opt/Qt5.1.0/5.1.0/gcc/include/QtNetwork -I/opt/Qt5.1.0/5.1.0/gcc/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc/include/QtCore -I. -I. -o mainwindow.o ../test1/mainwindow.cpp
/opt/Qt5.1.0//5.1.0/gcc/bin/moc -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_QML_LIB -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/Qt5.1.0/5.1.0/gcc/mkspecs/linux-g++ -I../test1 -I/opt/Qt5.1.0/5.1.0/gcc/include -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKitWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQuick -I/opt/Qt5.1.0/5.1.0/gcc/include/QtOpenGL -I/opt/Qt5.1.0/5.1.0/gcc/include/QtPrintSupport -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQml -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKit -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtSensors -I/opt/Qt5.1.0/5.1.0/gcc/include/QtNetwork -I/opt/Qt5.1.0/5.1.0/gcc/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc/include/QtCore -I. -I. ../test1/mainwindow.h -o moc_mainwindow.cpp
g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_QML_LIB -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/Qt5.1.0/5.1.0/gcc/mkspecs/linux-g++ -I../test1 -I/opt/Qt5.1.0/5.1.0/gcc/include -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKitWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQuick -I/opt/Qt5.1.0/5.1.0/gcc/include/QtOpenGL -I/opt/Qt5.1.0/5.1.0/gcc/include/QtPrintSupport -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQml -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKit -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtSensors -I/opt/Qt5.1.0/5.1.0/gcc/include/QtNetwork -I/opt/Qt5.1.0/5.1.0/gcc/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc/include/QtCore -I. -I. -o moc_mainwindow.o moc_mainwindow.cpp
g++ -Wl,-rpath,/opt/Qt5.1.0/5.1.0/gcc -Wl,-rpath,/opt/Qt5.1.0/5.1.0/gcc/lib -Wl,-rpath-link,/opt/Qt5.1.0/5.1.0/gcc/lib -o test1 main.o mainwindow.o moc_mainwindow.o   -L/opt/Qt5.1.0//5.1.0/gcc/lib -lQt5WebKitWidgets -lQt5Quick -lQt5OpenGL -lQt5PrintSupport -lQt5Qml -lQt5WebKit -lQt5Widgets -lQt5Sensors -lQt5Network -lQt5Gui -lQt5Core -lGL -lpthread 

/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `g_variant_ref'
/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `gst_x_overlay_set_window_handle'
/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `gst_query_parse_nth_buffering_range'
/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `g_variant_unref'
/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `gst_element_link_pads_full'
/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `gst_is_initialized'
/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `gst_query_get_n_buffering_ranges'
collect2: ld returned 1 exit status
make: *** [test1] Error 1
19:41:53: 进程"/usr/bin/make"退出,退出代码 2 。
Error while building/deploying project test1 (kit: Desktop Qt 5.1.0 GCC 32bit)
当执行步骤 'Make'时
19:41:53: Elapsed time: 00:07.


请问这是怎么回事呢? --------------------编程问答-------------------- pro 文件

#-------------------------------------------------
#
# Project created by QtCreator 2013-10-14T22:18:36
#
#-------------------------------------------------

QT       += core gui webkit webkitwidgets network

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = testWebit
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui



main.cpp 

#include "mainwindow.h"
#include <QApplication>
#include <QtWebKitWidgets>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWebView view ;
    view.load(QUrl("http://www.csdn.net"));
    view.show();
    
    return a.exec();
}


编译成功,效果图如下:
--------------------编程问答-------------------- 我也碰到这个问题,楼主解决了吗? --------------------编程问答-------------------- 请注意,Qt5中的模块化!
参考:http://blog.sina.com.cn/s/blog_a6fb6cc90101endy.html --------------------编程问答-------------------- 貌似是跟Linux发行版有关,我在CentOS6.4上遇到同样的问题,搜了Google也没什么解决方案,有人在qt-project.org的论坛上提了这问题也没人回复。
在其他发行版上,比如Debian Wheezy就没这问题。 --------------------编程问答--------------------
引用 1 楼 jyd30 的回复:
pro 文件

#-------------------------------------------------
#
# Project created by QtCreator 2013-10-14T22:18:36
#
#-------------------------------------------------

QT       += core gui webkit webkitwidgets network

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = testWebit
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui



main.cpp 

#include "mainwindow.h"
#include <QApplication>
#include <QtWebKitWidgets>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWebView view ;
    view.load(QUrl("http://www.csdn.net"));
    view.show();
    
    return a.exec();
}


编译成功,效果图如下:



不行哦,还是那个错误。我的是CentOS 6.4,你的是什么系统? --------------------编程问答--------------------
引用 4 楼 missdeer 的回复:
貌似是跟Linux发行版有关,我在CentOS6.4上遇到同样的问题,搜了Google也没什么解决方案,有人在qt-project.org的论坛上提了这问题也没人回复。
在其他发行版上,比如Debian Wheezy就没这问题。


对,我的系统就是CentOS 6.4,不知到怎么解决! --------------------编程问答--------------------
引用 2 楼 Grubbysfans 的回复:
我也碰到这个问题,楼主解决了吗?


还没解决,纠结。代码在windows下运行没问题,估计真的跟CentOS有关。 --------------------编程问答-------------------- 同问 ,我也遇到这个问题 ,centos 6.5,qt5.1.1,请问解决了吗 ?怎么解决的呢? --------------------编程问答-------------------- 貌似是操作系统的gtk原因。
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,