2013-10-31 4 views
1

qtwebkit을 사용하여 qt5에서 브라우저를 만들고 싶지만 내 사이트를 다운로드 할 때 오류가 발생했습니다. 나는 그 이유를 모른다. 나는 웹킷 라이브러리를 추가하고, mainwindow.h에 전화 :Qt5 웹킷과의 링크 오류

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 

나는 웹킷의 이름을 변경하려하지만, 난 여전히이 오류를 얻을 :

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

D : \ ubunto \ QtCreator \ 빈 \의 mozilabrwser의 \의 mainwindow.cpp \ QT5 \ 도구 : 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 모두 컴파일이 필요한 경우, 당신은 QT4에 대한 webkit, Qt5에 대한 webkitwidgets를 추가, 조건부 사용해야합니다. 그러나 이것은 취미 프로젝트에서 아무런 문제가되지 않을 것입니다. .pro 파일을 실제로 필요로 할 때까지이 파일을 사용하십시오 (두 소스를 모두 지원하려면 코드에 소스 변경과 #ifdef 내용이 필요합니다. 그것이 중요한 요구 사항이 아니라면 거기에 가라.)


같은 두 줄 연결된 문제는 라인 TARGET = mozilabrwser TEMPLATE = app도 보인다.

+0

이 없습니다 :(여전히이 오류를 발견했습니다 D : \ ubunto \ QT5 \ Tools \ QtCreator \ bin \ mozilabrwser \ mainwindow.cpp : 19 : 오류 : 정의되지 않은 참조 '_imp___ZN8QWebView4backEv' –

+0

이것은 모두 프로젝트입니다. http://www.4shared.com/rar/xpR2f64K/Browser_project.html –