Russian Qt Forum
Ноябрь 01, 2024, 03:16
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Доступ в стороннее QT приложение
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Доступ в стороннее QT приложение (Прочитано 8926 раз)
Cool Smile
Гость
Доступ в стороннее QT приложение
«
:
Декабрь 22, 2009, 09:52 »
Есть у меня сторонее приложение, видимо написанное в QT (во всяком случае в качестве базового класса выдается QWidget). И есть на нем элемент, я подозреваю textBrowser.
Вопрос - могу я из своей программы получить доступ (считать текст) из этого элемента?
По сути, все, что у меня есть это хеадер окна.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Доступ в стороннее QT приложение
«
Ответ #1 :
Декабрь 22, 2009, 12:34 »
Вряд ли.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Cool Smile
Гость
Re: Доступ в стороннее QT приложение
«
Ответ #2 :
Декабрь 22, 2009, 13:36 »
А можно поподробнее почему? С типовыми виндоусовскими компонентами а-ля StringList и RichEdit особых проблем не возникает, неужели у QT приложения принципиально нельзя запросить хеадер компонента и пообщаться с ним напрямую?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Доступ в стороннее QT приложение
«
Ответ #3 :
Декабрь 22, 2009, 17:43 »
Qt все контролы в окне сама отрисовывает. Думаю, дальше все понятно.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Доступ в стороннее QT приложение
«
Ответ #4 :
Декабрь 22, 2009, 17:54 »
Цитата: Пантер от Декабрь 22, 2009, 17:43
Qt все контролы в окне сама отрисовывает. Думаю, дальше все понятно.
Хммм... а что собственно понятно?
По-моему дело такое - есть 2 процесса, стало быть у них разные адресные пространства. И непонятно как данные из одного могут быть переданы в другое. Для этого нужно или работать через дескрипторы или shared memory - словом нужна какая-то специальная поддержка, а ее не видно.
А вообще мне нравится вопрос любознательного молодого человека
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Доступ в стороннее QT приложение
«
Ответ #5 :
Декабрь 22, 2009, 18:13 »
Понятно то, что до Кьютового контрола, в отличии от стандартного виндового, нельзя достучаться через винапи.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Доступ в стороннее QT приложение
«
Ответ #6 :
Декабрь 22, 2009, 19:46 »
Цитата: Пантер от Декабрь 22, 2009, 18:13
Понятно то, что до Кьютового контрола, в отличии от стандартного виндового, нельзя достучаться через винапи.
Ну до окон-то можно, да толку все равно немного. Структур данных не получить
Записан
Cool Smile
Гость
Re: Доступ в стороннее QT приложение
«
Ответ #7 :
Декабрь 23, 2009, 00:09 »
Поскольку я новичёк, имею право играть блондинку
- почему нельзя получить структур данных? Насколько я понял по публикациям идею, QT приложение крутит свою очередь событий, принимая всё родительским окном. Но может алгоритм распределения запросов открытый (все ж кроссплатформенная идея
) и притворяясь "папой" можно попросить отдать содержимое чайлд контрола?
>> А вообще мне нравится вопрос любознательного молодого человека
А давайте обозначим, что "любознательный молодой человек" заинтересован в решении этой задачи?
Записан
Dendy
Гость
Re: Доступ в стороннее QT приложение
«
Ответ #8 :
Декабрь 23, 2009, 01:41 »
Для начала узнайте точную версию Qt, с которой была собрана программа. Достаньте исходники Qt этой версии. Подключитесь к программе отладчиком и в ассемблерном коде, руководствуясь заголовочниками ищите данные. А если программа собрана с дебажными символами - так вообще песня.
Записан
break
Гипер активный житель
Offline
Сообщений: 846
Re: Доступ в стороннее QT приложение
«
Ответ #9 :
Декабрь 23, 2009, 02:23 »
В старом QtSolutions был такой класс ObjectInspector - я сам не пользовался им но вроде можно было просматривать дерево всех QObject-ов программы со свойствами и дочерними QObject-ами - можно покапать и в эту сторону тоже...
http://qt.nokia.com/products/appdev/add-on-products/catalog/3/Tools/qtobjectinspector/
На самом деле очень хороший солюшен вот бы его на Qt4 тоже перенесли - просьба в баг трекере - что-то никто не голосует...
http://bugreports.qt.nokia.com/browse/QTSOLBUG-57
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Доступ в стороннее QT приложение
«
Ответ #10 :
Декабрь 23, 2009, 17:53 »
Цитата: Cool Smile от Декабрь 23, 2009, 00:09
Поскольку я новичёк, имею право играть блондинку
- почему нельзя получить структур данных? Насколько я понял по публикациям идею, QT приложение крутит свою очередь событий, принимая всё родительским окном. Но может алгоритм распределения запросов открытый (все ж кроссплатформенная идея
) и притворяясь "папой" можно попросить отдать содержимое чайлд контрола?
Ну допустим (хотя я не вижу как) можем как-то управлять контролом, и что с того? Откуда мы знаем в каком окне какой контрол, что он делает и.т.п.? Пробежать по всем QTextEdit и вставить в каждый неприличное слово - вот максимум после долгих усилий. Стоит ли тратить время на примитивные пакости?
Записан
denka
Гость
Re: Доступ в стороннее QT приложение
«
Ответ #11 :
Декабрь 23, 2009, 23:12 »
Цитата: Igors от Декабрь 23, 2009, 17:53
Ну допустим (хотя я не вижу как) можем как-то управлять контролом, и что с того? Откуда мы знаем в каком окне какой контрол, что он делает и.т.п.? Пробежать по всем QTextEdit и вставить в каждый неприличное слово - вот максимум после долгих усилий. Стоит ли тратить время на примитивные пакости?
На самом деле это не примитивные пакости. Есть очень не плохая система, написанная на Qt, для создания GUI тестов для Qt приложений, которая использует данный подход.
«
Последнее редактирование: Декабрь 23, 2009, 23:17 от den'ka
»
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Доступ в стороннее QT приложение
«
Ответ #12 :
Декабрь 24, 2009, 01:03 »
А вот эта штука не подойдёт -
QSpy
?
П.С. сам не пользовался
Записан
Юра.
break
Гипер активный житель
Offline
Сообщений: 846
Re: Доступ в стороннее QT приложение
«
Ответ #13 :
Декабрь 24, 2009, 04:08 »
Цитировать
А вот эта штука не подойдёт - QSpy?
Посмотрел какой-то фейк треш не рабочий... к сожалению, уж подкмал как круто было бы - натравил на запущенную Qt программу и отлаживай..
В общем у меня не заработало и беглый взгляд на исходники подталкивает на мысль что скрин на странице QtApps это фотошоп из дизайнера -- короче фейк толкает кто-то...
И видео корявое сбацал только чтобы свой фейк подтвердить - ненавижу таких уродов моральных...
«
Последнее редактирование: Декабрь 24, 2009, 04:12 от break
»
Записан
Rcus
Гость
Re: Доступ в стороннее QT приложение
«
Ответ #14 :
Декабрь 24, 2009, 05:01 »
Цитата: break от Декабрь 24, 2009, 04:08
Цитировать
А вот эта штука не подойдёт - QSpy?
Посмотрел какой-то фейк треш не рабочий... к сожалению, уж подкмал как круто было бы - натравил на запущенную Qt программу и отлаживай..
В общем у меня не заработало и беглый взгляд на исходники подталкивает на мысль что скрин на странице QtApps это фотошоп из дизайнера -- короче фейк толкает кто-то...
И видео корявое сбацал только чтобы свой фейк подтвердить - ненавижу таких уродов моральных...
Хм... а у меня работает, но в описании указано прямо что работает только для Linux (хотя поверхностное изучение исходников показало что работать будет только при динамической линковке при поддержке LD_PRELOAD).
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...