Russian Qt Forum
Апрель 18, 2024, 17:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Нет сигнала BeforeNavigate у WebBrowser  (Прочитано 4895 раз)
Mish_ka
Гость
« : Сентябрь 21, 2014, 05:46 »

Создаю объект
Код
C++ (Qt)
WebBrowser = new WebAxWidget();
WebBrowser->setControl(QStringLiteral("{8856F961-340A-11D0-A96B-00C04FD705A2}"));
WebBrowser->setObjectName(QStringLiteral("WebBrowser"));
WebBrowser->setFocusPolicy(Qt::StrongFocus);
WebBrowser->dynamicCall("Navigate(const QString&)", "http://yandex.ru/");
 

Соединяю, сигнал о статусе объекта управления, с функцией, включающей выключающей эти объекты управления:
Код
C++ (Qt)
connect(WebBrowser, SIGNAL(CommandStateChange(int, bool)), this, SLOT(setCommandStateChange(int, bool)));
 

Всё отлично работает, так же отлично работает и сигнал:
Код
C++ (Qt)
connect(WebBrowser, SIGNAL(TitleChange(const QString&)), this, SLOT(setTitle(const QString&)) );
 

А вот, так необходимые мне BeforeNavigate, NewWindow, NewWindow2, NewWindow3 не работают.
Код
C++ (Qt)
connect(WebBrowser, SIGNAL(BeforeNavigate(const QString &, int, const QString &, const QVariant &, const QString &, bool &)),this, SLOT(beforeNavigate(const QString &, int, const QString &, const QVariant &, const QString &, bool &)));
 

В выводе говорит:
Код
C++ (Qt)
QObject::connect: No such signal QAxWidget::BeforeNavigate(const QString &, int, const QString &, const QVariant &, const QString &, bool &)
QObject::connect:  (sender name:   'WebBrowser')
QObject::connect:  (receiver name: 'MainWindow')
 

что я делаю не так?
« Последнее редактирование: Сентябрь 22, 2014, 09:06 от Mish_ka » Записан
torwig
Самовар
**
Offline Offline

Сообщений: 134



Просмотр профиля
« Ответ #1 : Сентябрь 21, 2014, 11:30 »

Если говорит, что нет такого сигнала, так возможно его действительно нет? В секции signals класса WebAxWidget они есть? Может порядок аргументов не такой? .h-файл приведите.
Записан
Mish_ka
Гость
« Ответ #2 : Сентябрь 22, 2014, 04:47 »

Это из примера по работе с ActiveX в Qt ( h файл вот )

Дело в том, что у объекта есть такие сигналы, вот они: http://msdn.microsoft.com/en-us/library/aa752085(v=vs.85).aspx

А так в секции сигналов, сигналов CommandStateChange и TitleChange нет, а они работают...
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #3 : Сентябрь 22, 2014, 06:19 »

Для объекта выполните:
Код:
QString QAxBase::generateDocumentation()
с обработкой некоторых событий COM объектов в Qt могут быть трудности
Записан
Mish_ka
Гость
« Ответ #4 : Сентябрь 22, 2014, 09:06 »

Спасибо большое!

я делал так:
Код
C++ (Qt)
BeforeNavigate(const QString &, int, const QString &, const QVariant &, const QString &, bool &)
 

а в документации сгенирированной сказано надо так:
Код
C++ (Qt)
BeforeNavigate(QString, int, QString, QVariant&, QString, bool&)
 

и всё заработало )))
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.157 секунд. Запросов: 22.