Ооо да
) Измислих го
) Като се има впредвид, че поливам последният ми изпит от бакалавъра, направо се чудя как успях да го напиша
Таа решениет окакто винаги е много просто
Хедър:
#ifndef MYWEBPAGE_H
#define MYWEBPAGE_H
#include <QWebPage>
class MyWebPage : public QWebPage
{
Q_OBJECT
public:
explicit MyWebPage(QObject *parent = 0);
signals:
public slots:
protected:
virtual QString chooseFile(QWebFrame *originatingFrame, const QString& oldFile);
};
#endif // MYWEBPAGE_H
Имплементация:
#include "mywebpage.h"
#include <QtGui/QFileDialog>
#include <QtCore/QSettings>
#include <QDebug>
MyWebPage::MyWebPage(QObject *parent) :
QWebPage(parent)
{
}
QString MyWebPage::chooseFile(QWebFrame *originatingFrame, const QString& oldFile)
{
Q_UNUSED(originatingFrame)
QWidget* p = qobject_cast<QWidget *>(parent());
QSettings *webPageSettings = new QSettings( p );
qDebug() << " Choosing file ... ";
QString fileName = QFileDialog::getOpenFileName(p, QString::null, webPageSettings->value( "previousFile", oldFile ).toString() );
webPageSettings->setValue( "previousFile", fileName );
return fileName;
}
И във главният прозорец:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mywebpage.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
MyWebPage *myPage = new MyWebPage(this);
ui->webView->setPage( myPage );
ui->webView->setUrl(QUrl("http://prikachi.com/"));
ui->lineEdit->setText( ui->webView->url().toString() );
}
MainWindow::~MainWindow()
{
delete ui;
}
QSettings може и по-добре да си ги направиш - като цялостно решение за програмата, не само в тая функция и там може да им се подадат още 200 параметъра и настройки (виж документацията) Иначе и в този вариант работи