[QT] при добавлении на форму Qwebview проект не компилируется

Картежник
Дата: 14.12.2014 09:53:13
пустая форма компилируется без ошибок. как только добавляю Qwebview и пытаюсь скомпилировать. выходят 30 ошибок.
вот первая из них я думаю они взаимосвязаны
[src]
mainwindow.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) public: void __thiscall QWebView::setUrl(class QUrl const &)" (__imp_?setUrl@QWebView@@QAEXABVQUrl@@@Z) в функции "public: void __thiscall Ui_MainWindow::setupUi(class QMainWindow *)" (?setupUi@Ui_MainWindow@@QAEXPAVQMainWindow@@@Z)
[src]
используется комплект Desktop QT5.4 MSVC2010 OpenGL 32bit.

Кто работал с этим Qwebview? хотел узнать является ли он полноценным браузером или примитивный viewer html страниц? поддерживает ли javascipt, csv и т.д.?
Картежник
Дата: 14.12.2014 10:15:21
кажется нашел [url=]решение[/url] проверю отпишусь
MasterZiv
Дата: 14.12.2014 13:46:43
Картежник,
QT состоит из нескольких компонент.
это нужно для экономии.
подозреваю, что web компоненты лежат в
отдельной библиотеке, её надо сконфигурить и подключить.

делается это в qmake файле проекта, что то типа

QT += web;


как точно - лучше взять любой Пример по QT web и посмотреть как там сделано.

эффективно эта настройка подключает нужные библиотеки и нужные ключи сборки.

да, и не забудь переконфигурировать проект после изменения файла пороекта.
sld
Дата: 15.12.2014 10:02:32
добавить библиотеки и запустить qmake
Картежник
Дата: 15.12.2014 15:50:17
хорошо с браузером разобрался.переустановил QT.
нарыл код для скачки файлов. и опять выходит ошибки.немножко переделал,но все равно ошибка одна осталась

mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QNetworkAccessManager>
#include  <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>
#include <QDateTime>
#include <QFile>
#include <QDebug>
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();
    public slots:
 void replyFinished(QNetworkReply *reply);
private:
    Ui::MainWindow *ui;
     QNetworkAccessManager *manager;
};

#endif // MAINWINDOW_H


mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "downloader.h"



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

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

void replyFinished (QNetworkReply *reply)
{
    if(reply->error())
    {
        qDebug() << "ERROR!";
        qDebug() << reply->errorString();
    }
    else
    {
        qDebug() << reply->header(QNetworkRequest::ContentTypeHeader).toString();
        qDebug() << reply->header(QNetworkRequest::LastModifiedHeader).toDateTime().toString();;
        qDebug() << reply->header(QNetworkRequest::ContentLengthHeader).toULongLong();
        qDebug() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
        qDebug() << reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString();

        QFile *file = new QFile("C:/Qt/downloaded.txt");
        if(file->open(QFile::Append))
        {
            file->write(reply->readAll());
            file->flush();
            file->close();
        }
        delete file;
    }

    reply->deleteLater();
}

void MainWindow::on_pushButton_clicked()
{
manager=new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
                this, SLOT(replyFinished(QNetworkReply*)));
    manager->get(QNetworkRequest(QUrl("http://google.com")));
}


Ошибка

moc_mainwindow.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall MainWindow::replyFinished(class QNetworkReply *)" (?replyFinished@MainWindow@@QAEXPAVQNetworkReply@@@Z) в функции "private: static void __cdecl MainWindow::qt_static_metacall(class QObject *,enum QMetaObject::Call,int,void * *)" (?qt_static_metacall@MainWindow@@CAXPAVQObject@@W4Call@QMetaObject@@HPAPAX@Z)
Картежник
Дата: 15.12.2014 15:51:10
mydownloader1.pro
QT       += core gui webkitwidgets network

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = mydownloader1
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    downloader.cpp

HEADERS  += mainwindow.h \
    downloader.h

FORMS    += mainwindow.ui
egorych
Дата: 15.12.2014 17:49:41
Картежник,
// mainwindow.cpp
void MainWindow::replyFinished (QNetworkReply *reply)
{
...
}

;)
Картежник
Дата: 15.12.2014 18:10:03
egorych,
ха-ха,блин надо же не заметил, теперь работает. исходники нашел с реализацией через классы. теперь хотелось бы тоже так же сделать.но там тоже такая ошибка выходит,хотя там нет такой ошибки.
MasterZiv
Дата: 15.12.2014 22:43:58
Картежник
кажется нашел [url=]решение[/url] проверю отпишусь


да это оно.
Картежник
Дата: 17.12.2014 09:22:51
MasterZiv,

еще один момент.если не компилируется после исправления всех ошибок и недочетов,то необходимо удалить папку с компилированными файлами,название которого примерно будет такого вида build-Projectname-Desktop_Qt_5_4_0_MSVC2010_OpenGL_32bit-Debug. а затем скомпилировать заново