crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QWebPage::downloadRequested
k0p4
  опции профиля:
сообщение 30.9.2010, 23:42
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 18.10.2009
Пользователь №: 1160

Спасибо сказали: 0 раз(а)




Репутация:   0  


Доброго временисуток. Подскажите пожалуйста, как правильнопользоваться.
В коде :
 connect(ui->webView->page(),SIGNAL(downloadRequested(QNetworkRequest)),
            d,SLOT(downloadRequested(QNetworkRequest)));

...

void WebBrowser::downloadRequested(QNetworkRequest *request)
{
    QUrl url = request->url();
    QMessageBox msgBox;
    msgBox.setText("ROBIT");
    msgBox.exec();
    emit downLoadRequested(url);
}

работать отказывается. Похоже, я что-то упускаю. Как LinkDelegationPolicy, в сигнале linkClicked();


Извиняюсь, неправильнокод вставил...
 connect(ui->webView->page(),SIGNAL(downloadRequested(QNetworkRequest)),
            this,SLOT(downloadRequested(QNetworkRequest)));
    connect(this,SIGNAL(downLoad(QUrl*)),d,SLOT(connectItem(QUrl)));


...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 1.10.2010, 6:41
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2898
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


1) а где находится и каким типом является переменная d ?
2) где вызывается код
Цитата(k0p4 @ 1.10.2010, 2:42) *
connect(ui->webView->page(),SIGNAL(downloadRequested(QNetworkRequest)),
this,SLOT(downloadRequested(QNetworkRequest)));
connect(this,SIGNAL(downLoad(QUrl*)),d,SLOT(connectItem(QUrl)));

?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
k0p4
  опции профиля:
сообщение 1.10.2010, 13:18
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 18.10.2009
Пользователь №: 1160

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 1.10.2010, 6:41) *
1) а где находится и каким типом является переменная d ?
2) где вызывается код
Цитата(k0p4 @ 1.10.2010, 2:42) *
connect(ui->webView->page(),SIGNAL(downloadRequested(QNetworkRequest)),
this,SLOT(downloadRequested(QNetworkRequest)));
connect(this,SIGNAL(downLoad(QUrl*)),d,SLOT(connectItem(QUrl)));

?


 d = new downLoadDialog;
.....
d->show();
.....
class downLoadDialog : public QDialog
{
    Q_OBJECT
public:
....
public slots:
    void connectItem(QUrl link);
signals:
    void recived(QUrl url);
};

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 1.10.2010, 13:31
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2898
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


ну, справка говорит, что сигнал определён так

void QWebPage::downloadRequested ( const QNetworkRequest & request ) // [signal]

а ты указываешь
SIGNAL(downloadRequested(QNetworkRequest)

Затем,
Цитата
connect(ui->webView->page(),SIGNAL(downloadRequested(QNetworkRequest)),
d,SLOT(downloadRequested(QNetworkRequest)));

почему в SLOT указан сигнал ?

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
k0p4
  опции профиля:
сообщение 1.10.2010, 23:01
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 18.10.2009
Пользователь №: 1160

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 1.10.2010, 13:31) *
ну, справка говорит, что сигнал определён так

void QWebPage::downloadRequested ( const QNetworkRequest & request ) // [signal]

а ты указываешь
SIGNAL(downloadRequested(QNetworkRequest)

Затем,
Цитата
connect(ui->webView->page(),SIGNAL(downloadRequested(QNetworkRequest)),
d,SLOT(downloadRequested(QNetworkRequest)));

почему в SLOT указан сигнал ?


Эмм ну вообще-то это не сигнал а слот. И это слот обьекта downLoadDialog.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 2.10.2010, 10:06
Сообщение #6


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(k0p4 @ 1.10.2010, 0:42) *
connect(this,SIGNAL(downLoad(QUrl*)),d,SLOT(connectItem(QUrl)));

в сигнале указатель на QUrl а в слоте QUrl.
Естественно это не сработает.

П.С.
и все же называй сигналы и слоты разными именами, а тов едь так запутаться не сложно.
Это я про downloadRequested(QNetworkRequest)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
k0p4
  опции профиля:
сообщение 2.10.2010, 23:17
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 18.10.2009
Пользователь №: 1160

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(kwisp @ 2.10.2010, 10:06) *
Цитата(k0p4 @ 1.10.2010, 0:42) *
connect(this,SIGNAL(downLoad(QUrl*)),d,SLOT(connectItem(QUrl)));

в сигнале указатель на QUrl а в слоте QUrl.
Естественно это не сработает.

П.С.
и все же называй сигналы и слоты разными именами, а тов едь так запутаться не сложно.
Это я про downloadRequested(QNetworkRequest)


при
connect(this,SIGNAL(downLoad(QUrl*)),d,SLOT(connectItem(QUrl)));
компилятор выдаёт ошибку о том, что невозможно приведение типов QUrl* и QUrl. Это был отладочный варианткода, когда я думал, что неправильно написал слоты. В моём срр файле таких недочётов нет. Всё компилится. Поэтому вопрос я спрашиваю не "почему не работает код", а как правильно использовать. Как я писал выше, слот просто не выполняется.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 3.10.2010, 18:44
Сообщение #8


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


тогда больше кода покажи а то гадать можно долго.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
k0p4
  опции профиля:
сообщение 5.10.2010, 20:33
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 18.10.2009
Пользователь №: 1160

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(kwisp @ 3.10.2010, 18:44) *
тогда больше кода покажи а то гадать можно долго.



downloaditem.cpp

void downLoadItem::init(QNetworkRequest request)
{
    Manager = new QNetworkAccessManager;

    QNetworkReply *reply = Manager->get(request);    
  
    connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));
    connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
               this, SLOT(slotError(QNetworkReply::NetworkError)));
    connect(reply, SIGNAL(finished()), this, SLOT(slotFinished()));    

    file.setFileName(getFileName(reply->url()));
    file.open(QIODevice::WriteOnly);
}


void downLoadItem::slotError(QNetworkReply::NetworkError)
{

}
void downLoadItem::slotFinished()
{
    QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
    file.close();
    reply->deleteLater();
}
void downLoadItem::slotReadyRead()
{
    QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
    file.write(reply->readAll());
}


downloaddialog.cpp

void downLoadDialog::connectItem(QNetworkRequest request)// этот слот не робит.
{
    item->init(request);

    QMessageBox msgBox;
    msgBox.setText("ROBIT");
    msgBox.exec();
}


webview.cpp

XronView::XronView(): QWebView()
{
    d = new downLoadDialog;

    this->page()->setForwardUnsupportedContent(true);

    connect(this->page(),SIGNAL(downloadRequested(QNetworkRequest)),
            d,SLOT(connectItem(QNetworkRequest)));

     d->show();

     this->load(QUrl("http://www.upload.com.ua"));
}

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 5.10.2010, 20:48
Сообщение #10


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


void downLoadDialog::connectItem(const QNetworkRequest &request)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.6.2020, 17:07