Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > qt [4.6] не срабатывает сигнал.


Автор: pycha 22.6.2011, 01:23
здраствуйте. у меня почемуто несрабатывает сигнал void QWebView::linkClicked ( const QUrl & url ).
я уже пробывал по разному обявлять даже но всерано не работает. ткните меня носом в то что я сделал не так?
вот конект по сигналу
Код

connect(webView,SIGNAL(linkClicked(const QUrl)),this,SLOT(perehod(const QUrl)));


обьявление слота
Код

void perehod(const QUrl &url);


соотвественно сам слот 
Код

void dialog::perehod(const QUrl &url)
{
    QMessageBox::information(this," "," ");
    QDesktopServices::openUrl(url);
}


мне нужно чтобы когда кликнули по ссылке в проге она открывалась в браузере по умолчанию.

Автор: loneybibi 22.6.2011, 01:33
А зачем сигналы, ты не пробовал QLabel ? Он поддерживает html синтаксис, задай в качестве текста что то вроде:
Код

<a href="http://google.ru/">Google</a>

Автор: loneybibi 22.6.2011, 01:49
А насчет QWebView, убери взятие url по & ... напиши просто в объявлении void perehod(QUrl url); но все равно как дебаг он выводит информацию о инициализации icedtea java (в моем случае на линукс) вместо ссылки .. 

Автор: pycha 22.6.2011, 02:00
кстати делал еще так 
Код

webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);

по идеи оно должно сразу открывать ссылку в браузере а не посылать сигнал, но как и было ни сигнала ни ссылка не открылась.

Автор: pycha 22.6.2011, 02:26
а нащет лейбла что же там можно сделать? у меня есть сраница с разными ссылками, что она лейбле откроется?

Автор: borisbn 22.6.2011, 09:05
Цитата

connect(webView,SIGNAL(linkClicked(const QUrl &)),this,SLOT(perehod(const QUrl &)));

пробовал ?

Автор: loneybibi 22.6.2011, 11:39
Цитата(pycha @ 22.6.2011,  01:26)
а нащет лейбла что же там можно сделать? у меня есть сраница с разными ссылками, что она лейбле откроется?

Конечно там не полноценный парсер .. но для того что бы ссылки открывать вполне хватит smile причем он по умолчанию сам будет находить браузер без всяких слотов.. главное у QLabel свойство openExternalLinks = true и все smile 
Получится что то вроде этого :

http://radikal.ru/F/s19.radikal.ru/i192/1106/ff/aebb8a9b519a.jpg.html

Автор: pycha 22.6.2011, 23:41
ребят, обраружил причину, оказалась детская ошибка. в процесе разработки по ненадобности закоментировал #include <QtWebKit>.  а когда вебвивером начал заниматся забыл снять коментарии. вот из за этого и вся канитель smile 

Автор: alexvs11 22.6.2011, 23:59
а как оно компилировалось? если не секрет

Автор: pycha 23.6.2011, 03:00
в проекте обьявление QT +=    webkit оставил, поэтому походу его и видело. но в файле не подлючил поэтому не соединяло

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)