Название: Нехватает опыта, чтобы реализовать задумку Отправлено: smackthat от Апрель 18, 2010, 10:57 Добрый день. Итак, я работаю с QWebKit. Я загружаю веб-страничку через QWebFrame функцией load. Потом я достаю содержание странички через функции для работы с дом-моделью (findFirst, FindAll). Так вот, я не могу просто сначала вызвать лоад, а потом findFirst, так как функция лоад выполняется паралельно, а чтобы достать ее содержимое нужно написать функцию, которая будет это делать по срабатыванию сигнала loadFinished (вроде так называется). Получается, чтобы достать содержимое странички нужно написать 2 функции при этом как их связать вместе я не знаю.
Я бы хотел, просто создать функцию, которая грузит какую-то страничку и возвращает ее содержимое. На практике мне нужно грузить страничку, искать определенные строки и на основе этих строк обращатся к другим страничкам. В коде это выглядит примерно так: Код: void найтиКлючевыеСловаДляСтранички(адресСтранички) Тоесть я загружаю и получаю содержимое для кучи страничек, что в свою очередь требует выполнения 2 функций: загрузки странички и доставания инфы, которые не могут выполняться последовательно. Если кто-то понял вопрос, буду очень рад услышать советы. Название: Re: Нехватает опыта, чтобы реализовать задумку Отправлено: SABROG от Апрель 18, 2010, 11:36 Ну и подключай к loadFinished свой слот, а там вызывай findFirst. Хуже если страничка может сама обновляться по яваскрипту или еще как-то. Тогда танцы с бубнами начнутся.
Название: Re: Нехватает опыта, чтобы реализовать задумку Отправлено: smackthat от Апрель 18, 2010, 12:17 Я так и делаю, но проблема в том, что таких сигналов должно посылаться очень много и непонятно как управлять всем этим месивом из единственной функции, непонятно как определять, кто что послал и что следует искать в очередной страничке. Понимаете?
Название: Re: Нехватает опыта, чтобы реализовать задумку Отправлено: smackthat от Апрель 18, 2010, 15:28 Я тут думал-думал и понял, что мне нужно, чтобы вместе с сигналом приходила и дополнительная информация, о том, что нужно делать.
Как передать какую-то информацию сигналу? Тоесть, чтоб сигнал видел, что ему нужно делать. Название: Re: Нехватает опыта, чтобы реализовать задумку Отправлено: smackthat от Апрель 19, 2010, 12:42 Попробую детальнее пояснить свою проблему: я хочу написать программу, которая делает примерно следующее:
Код: for(int counter=0;counter<10;counter++) Название: Re: Нехватает опыта, чтобы реализовать задумку Отправлено: SABROG от Апрель 19, 2010, 13:14 Куча способов. Самый простой QWebView::url().
Название: Re: Нехватает опыта, чтобы реализовать задумку Отправлено: smackthat от Апрель 19, 2010, 15:07 Но как мне достать url?
Пытаюсь так: Код: QString url=(qobject_cast<QWebFrame *>(QObject::sender()))->url().toString(); Название: Re: Нехватает опыта, чтобы реализовать задумку Отправлено: Kolobok от Апрель 19, 2010, 16:49 Если делаешь qobject_cast, нужно проверять, что получилось.
Название: Re: Нехватает опыта, чтобы реализовать задумку Отправлено: smackthat от Апрель 19, 2010, 18:09 Как можно проверить, что получилось?
Название: Re: Нехватает опыта, чтобы реализовать задумку Отправлено: Kolobok от Апрель 19, 2010, 18:16 Код: QWebFrame *sender= qobject_cast<QWebFrame *>( this->sender() ); |