2013-10-31 71 views
1

我想使用qtwebkit在qt5中創建瀏覽器,但當我下載我的網站時發現一些錯誤。我不知道原因。我加入WebKit的圖書館,並調用它在mainwindow.hQt5 webkit鏈接錯誤

mainwindow.h

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QMainWindow> 
#include <QtWebKit/QtWebKit> 

namespace Ui { class MainWindow; } 

class MainWindow : public QMainWindow { 
    Q_OBJECT 
    public: 
    explicit MainWindow(QWidget *parent = 0); 
    ~MainWindow(); 
    private slots: 
    void on_pushButton_clicked(); 

    void on_pushButton_2_clicked(); 

    void on_pushButton_3_clicked(); 

    void on_pushButton_4_clicked(); 

private: 
    Ui::MainWindow *ui; }; 

#endif // MAINWINDOW_H 

mainwindow.cpp

#include "mainwindow.h" 
#include "ui_mainwindow.h" 

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 
} 

MainWindow::~MainWindow() 
{ 
    delete ui; 
} 

void MainWindow::on_pushButton_clicked() 
{ 
    ui->webView->back(); 
} 

void MainWindow::on_pushButton_2_clicked() 
{ 
    ui->webView->forward(); 
} 

void MainWindow::on_pushButton_3_clicked() 
{ 
    ui->webView->reload(); 
} 

void MainWindow::on_pushButton_4_clicked() 
{ 
    ui->webView->load("http://" + ui->lineEdit->text()); 
} 

,這時候我叫庫

#------------------------------------------------- 
# 
# Project created by QtCreator 2013-10-31T07:39:06 
# 
#------------------------------------------------- 
QT  += core gui QT  += webkit 
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 
TARGET = mozilabrwser TEMPLATE = app 
SOURCES += main.cpp\ 
     mainwindow.cpp 
HEADERS += mainwindow.h 
FORMS += mainwindow.ui 

我試圖改變的WebKit的名字,但我仍然得到這個錯誤:

D:\ubunto\QT5\Tools\QtCreator\bin\mozilabrwser\mainwindow.cpp:19: error: 
undefined reference to `_imp___ZN8QWebView4backEv' 
+0

d:\ ubunto \ QT5 \工具\ QtCreator \ BIN \ mozilabrwser \ mainwindow.cpp:19:錯誤:未定義的引用'_imp___ZN8QWebView4backEv」 –

+0

這是所有項目 http://www.4shared.com/rar/ xpR2f64K/Browser_project.html –

回答

1
QT += core gui QT += webkit 

是錯誤的。您似乎在Qt 5中使用Qt 5和,正確的模塊是webkitwidgets。第二個問題是格式化,你好像有兩條連線。所以這應該工作:

QT += core gui 
QT += webkitwidgets 

注意:如果你需要有計劃既Qt4的和QT5編譯,那麼你需要使用條件,增加webkit對的Qt4,webkitwidgets爲QT5。但是,這可能不是一個業餘愛好項目的關注點,沒有任何一點將.pro文件與這些東西混淆在一起,直到你真的需要它(如果你想支持這兩者,你還需要在代碼中進行一些源代碼更改和#ifdef的東西,所以不要去那裏除非它是一個重要的要求)。


相同的兩條線串聯的問題似乎也符合TARGET = mozilabrwser TEMPLATE = app

+0

not this :(我仍然發現這個錯誤 D:\ ubunto \ QT5 \ Tools \ QtCreator \ bin \ mozilabrwser \ mainwindow.cpp:19:error:undefined reference to _imp___ZN8QWebView4backEv' –

+0

這是所有項目 http://www.4shared.com/rar/xpR2f64K/Browser_project.html –