Название: statusBarMessage в WebView Отправлено: ruzik от Февраль 15, 2011, 17:15 Здравствуйте, нашел в ассистенте сигнал statusBarMessage для объекта QWebView, как я понимаю, этот сигнал делает следующее:
при наведении на ссылку и тп, эта функция передает её адрес Попытался её использовать, объявил слот void setStatusBarMainLabel(QString & text); (StatusBarMainLabel- это объект класса QLabel- простая надпись) Расписал этот слот: void MyBr::setStatusBarMainLabel(QString & text) { StatusBarMainLabel->setText(text); } Соединил: connect(webView, SIGNAL(statusBarMessage (QString)) , this , SLOT(setStatusBarMainLabel(QString))); Ошибок не выскакивает, все компилируется нормально, я проверял самое событие срабатывает, то есть сигнал вызывает слот, но текст не устанавливается, пробовал объявить указатель и через него, пробовал с const-не могогает Название: Re: statusBarMessage в WebView Отправлено: ruzik от Февраль 16, 2011, 21:44 Помогите пожалуйста
Название: Re: statusBarMessage в WebView Отправлено: serg_hd от Февраль 17, 2011, 02:51 Не совсем так. Ты попробуй, например, в слот окончания загрузки страницы (хотя можно и сразу после твоего connect()'a) добавить
Код Увидишь результат на label'е и откроешь заодно для себя возможности яваскрипта. Название: Re: statusBarMessage в WebView Отправлено: ruzik от Февраль 17, 2011, 11:03 Ну пока что открыл возможность VS выискивать ошибки ;D
Ошибка 1 error C2228: выражение слева от ".page" должно представлять класс, структуру или объединение c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 86 Ошибка 2 error C2227: выражение слева от "->mainFrame" должно указывать на тип класса, структуры или объединения либо на универсальный тип c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 86 Ошибка 3 error C2227: выражение слева от "->evaluateJavaScript" должно указывать на тип класса, структуры или объединения либо на универсальный тип c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 86 Пробовал заменить .page на ->page Ставил и в функцию которая вызывается после загрузки и после конекта-одно и то же Название: Re: statusBarMessage в WebView Отправлено: serg_hd от Февраль 17, 2011, 15:51 Следуя из того, что webview у тебя создана в куче и ты обращается к ней через указатель, код, конечно, был тобою изменён на:
Код ? Название: Re: statusBarMessage в WebView Отправлено: ruzik от Февраль 17, 2011, 18:48 Я же написал выше, что
Цитировать Пробовал заменить .page на ->page Вот ошибки, которые выдает Ошибка 1 error C2027: использование неопределенного типа "QWebFrame" c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 86 Ошибка 2 error C2227: выражение слева от "->evaluateJavaScript" должно указывать на тип класса, структуры или объединения либо на универсальный тип c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\MyBr\MyBr\mybr.cpp 86 Название: Re: statusBarMessage в WebView Отправлено: serg_hd от Февраль 17, 2011, 19:02 ну а
Код ?? Название: Re: statusBarMessage в WebView Отправлено: ruzik от Февраль 17, 2011, 19:17 Спасибо, вот где собака зарыта ;D
Название: Re: statusBarMessage в WebView Отправлено: serg_hd от Февраль 17, 2011, 19:22 Если бы тема не была в разделе новичков, я бы оч. удивился(
Название: Re: statusBarMessage в WebView Отправлено: ruzik от Февраль 17, 2011, 19:25 Я совсем недавно в Qt, поэтому и задаю так много ламерских вопросов
Название: Re: statusBarMessage в WebView Отправлено: ruzik от Февраль 17, 2011, 19:31 Вставил, а на label'е так ничего и не увидел, он пуст, как и был(
Название: Re: statusBarMessage в WebView Отправлено: serg_hd от Февраль 17, 2011, 19:39 Может быть ещё чего-то забыл? Я проверял, у меня всё ок.
Название: Re: statusBarMessage в WebView Отправлено: ruzik от Февраль 17, 2011, 19:59 Я вроде все тоже сделал правильно, вставил и в функцию и после конекта, не идет
Название: Re: statusBarMessage в WebView Отправлено: serg_hd от Февраль 17, 2011, 20:01 Я вроде все тоже сделал правильно, вставил и в функцию и после конекта, не идет В какую именно функцию? А лучше покажи код.Название: Re: statusBarMessage в WebView Отправлено: ruzik от Февраль 17, 2011, 21:09 Точнее это не функция, а слот
void MyBr::setTitle(bool a) { this->setWindowTitle(webView->title()); webView->page()->mainFrame()->evaluateJavaScript("window.status = 'mytext!!!!'"); } А в конструкторе connect(webView , SIGNAL(loadFinished(bool)), this, SLOT(setTitle(bool))); То есть загружается страница, устанавливается текст заголовка самого браузера, а так же нужное действие Название: Re: statusBarMessage в WebView Отправлено: serg_hd от Февраль 17, 2011, 23:37 сравни с этими древними исходниками
Название: Re: statusBarMessage в WebView Отправлено: ruzik от Февраль 18, 2011, 12:54 В вашем проекте, у меня тоже при наведении на ссылку ничего не отображается и не появляется
Значит дело не в коде Название: Re: statusBarMessage в WebView Отправлено: serg_hd от Февраль 18, 2011, 14:06 А при чём здесь "ничего не отображается и не появляется"? Там же в слоте через qDebug() вывод текста! В терминале этот текст должен быть. Или и его нет?
Название: Re: statusBarMessage в WebView Отправлено: ruzik от Февраль 18, 2011, 14:16 А все извините, неуглядел
|