![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
k0p4 |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 18.10.2009 Пользователь №: 1160 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Доброго временисуток. Подскажите пожалуйста, как правильнопользоваться.
В коде :
работать отказывается. Похоже, я что-то упускаю. Как LinkDelegationPolicy, в сигнале linkClicked(); Извиняюсь, неправильнокод вставил...
|
|
|
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
k0p4 |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 18.10.2009 Пользователь №: 1160 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
1) а где находится и каким типом является переменная d ? 2) где вызывается код connect(ui->webView->page(),SIGNAL(downloadRequested(QNetworkRequest)), this,SLOT(downloadRequested(QNetworkRequest))); connect(this,SIGNAL(downLoad(QUrl*)),d,SLOT(connectItem(QUrl))); ?
|
|
|
Алексей1153 |
![]()
Сообщение
#4
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
ну, справка говорит, что сигнал определён так
void QWebPage::downloadRequested ( const QNetworkRequest & request ) // [signal] а ты указываешь SIGNAL(downloadRequested(QNetworkRequest) Затем, Цитата connect(ui->webView->page(),SIGNAL(downloadRequested(QNetworkRequest)), d,SLOT(downloadRequested(QNetworkRequest))); почему в SLOT указан сигнал ? |
|
|
k0p4 |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 18.10.2009 Пользователь №: 1160 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
ну, справка говорит, что сигнал определён так void QWebPage::downloadRequested ( const QNetworkRequest & request ) // [signal] а ты указываешь SIGNAL(downloadRequested(QNetworkRequest) Затем, Цитата connect(ui->webView->page(),SIGNAL(downloadRequested(QNetworkRequest)), d,SLOT(downloadRequested(QNetworkRequest))); почему в SLOT указан сигнал ? Эмм ну вообще-то это не сигнал а слот. И это слот обьекта downLoadDialog. |
|
|
kwisp |
![]()
Сообщение
#6
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
connect(this,SIGNAL(downLoad(QUrl*)),d,SLOT(connectItem(QUrl))); в сигнале указатель на QUrl а в слоте QUrl. Естественно это не сработает. П.С. и все же называй сигналы и слоты разными именами, а тов едь так запутаться не сложно. Это я про downloadRequested(QNetworkRequest) |
|
|
k0p4 |
![]()
Сообщение
#7
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 18.10.2009 Пользователь №: 1160 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
connect(this,SIGNAL(downLoad(QUrl*)),d,SLOT(connectItem(QUrl))); в сигнале указатель на QUrl а в слоте QUrl. Естественно это не сработает. П.С. и все же называй сигналы и слоты разными именами, а тов едь так запутаться не сложно. Это я про downloadRequested(QNetworkRequest) при компилятор выдаёт ошибку о том, что невозможно приведение типов QUrl* и QUrl. Это был отладочный варианткода, когда я думал, что неправильно написал слоты. В моём срр файле таких недочётов нет. Всё компилится. Поэтому вопрос я спрашиваю не "почему не работает код", а как правильно использовать. Как я писал выше, слот просто не выполняется.
|
|
|
kwisp |
![]()
Сообщение
#8
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
тогда больше кода покажи а то гадать можно долго.
|
|
|
k0p4 |
![]()
Сообщение
#9
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 18.10.2009 Пользователь №: 1160 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
тогда больше кода покажи а то гадать можно долго.
|
|
|
igor_bogomolov |
![]()
Сообщение
#10
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
k0p4 |
![]()
Сообщение
#11
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 18.10.2009 Пользователь №: 1160 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
исправил. Проблема осталась.Так же отладочный слот
не робит. Значит не проходит сигнал... |
|
|
igor_bogomolov |
![]()
Сообщение
#12
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
const опять пропустил
|
|
|
k0p4 |
![]()
Сообщение
#13
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 18.10.2009 Пользователь №: 1160 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
const опять пропустил Вы имеете ввиду
? Так тоже не реагирует. Если можно подробней обьясните. |
|
|
igor_bogomolov |
![]()
Сообщение
#14
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Я имел в виду функцию down, в connect можно было ничего не менять (оба варианта правильны).
Почему у тебя не работает не знаю. Посмотри вот этот пример (ссылка), там, на сколько я понимаю, делается примерно то же самое, что пытаешься сделать ты |
|
|
kwisp |
![]()
Сообщение
#15
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
k0p4,
если не разобрался - заголовочные файлы давай тоже сюда выкладывай. получив в void downLoadDialog::connectItem(const QNetworkRequest& request) request ты не сможешь вызвать в ней init(request) т.к. фактически-передаваемый аргумент константный. из ассистената Цитата void QWebPage::downloadRequested ( const QNetworkRequest & request ) [signal] This signal is emitted when the user decides to download a link. The url of the link as well as additional meta-information is contained in request. See also unsupportedContent(). не оч.силен в английском "download a link" означает ли это что при простой загрузке странички он будет вызываться? как на счет unsupportedContent()? может срабатывает он? как на счет других сигналов Цитата void loadFinished ( bool ok ) void loadProgress ( int progress ) void loadStarted () П.С. Manager = new QNetworkAccessManager; а где освобождаешь память? |
|
|
k0p4 |
![]()
Сообщение
#16
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 18.10.2009 Пользователь №: 1160 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата void downLoadDialog::connectItem(const QNetworkRequest& request) request ты не сможешь вызвать в ней init(request) т.к. фактически-передаваемый аргумент константный. Не понял. Цитата не оч.силен в английском "download a link" означает ли это что при простой загрузке странички он будет вызываться? нет. Грубо говоря, сигнал посылаеться, когда пользователь желает загрузить линк. Насколько я понимаю - кликает по прямому линку, либо идёт редирект на прямой линк. Цитата как на счет unsupportedContent()? может срабатывает он? выставил с самого начала.
Цитата Manager = new QNetworkAccessManager; а где освобождаешь память? в downloaditem.h
Вот весь код. |
|
|
Алексей1153 |
![]()
Сообщение
#17
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
kwisp |
![]()
Сообщение
#18
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
это объявление указателя, а не освобождение памяти ) Сделай в деструкторе класса delete Manager; или назначь хозяина обЪекту менеджера k0p4 ты точно кликаешь по ссылкам и слот down не вызывается? может уже поздно, но не могу найти что в коде не так.... попробуй поэксперементируй с другими сигналами.... |
|
|
k0p4 |
![]()
Сообщение
#19
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 18.10.2009 Пользователь №: 1160 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Решил пол проблемы. Сигнал посылаеться, когда пользователь вконтекстном меню кликает save link... Но. На, к примеру, большинстве обменниках установлены кнопочки, и ссылки не прямые (должен быть редирект, к примеру http://gameinside.ua/getfile.php?area=demos&id=7782 - ссылка возвращаемая copy link). Собственно мэнэджер качает файл download.php. Отсуда вопрос, как поймать редирект?
|
|
|
kwisp |
![]()
Сообщение
#20
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 14.7.2025, 10:29 |