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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Доступ в стороннее QT приложение  (Прочитано 8934 раз)
Cool Smile
Гость
« : Декабрь 22, 2009, 09:52 »

Есть у меня сторонее приложение, видимо написанное в QT (во всяком случае в качестве базового класса выдается QWidget). И есть на нем элемент, я подозреваю textBrowser.
Вопрос - могу я из своей программы получить доступ (считать текст) из этого элемента?

По сути, все, что у меня есть это хеадер окна.

Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Декабрь 22, 2009, 12:34 »

Вряд ли.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Cool Smile
Гость
« Ответ #2 : Декабрь 22, 2009, 13:36 »

А можно поподробнее почему? С типовыми виндоусовскими компонентами а-ля StringList и RichEdit особых проблем не возникает, неужели у QT приложения принципиально нельзя запросить хеадер компонента и пообщаться с ним напрямую? Грустный
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Декабрь 22, 2009, 17:43 »

Qt все контролы в окне сама отрисовывает. Думаю, дальше все понятно.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Декабрь 22, 2009, 17:54 »

Qt все контролы в окне сама отрисовывает. Думаю, дальше все понятно.
Хммм... а что собственно понятно? Улыбающийся По-моему дело такое - есть 2 процесса, стало быть у них разные адресные пространства. И непонятно как данные из одного могут быть переданы в другое. Для этого нужно или работать через дескрипторы или shared memory - словом нужна какая-то специальная поддержка, а ее не видно.

А вообще мне нравится вопрос любознательного молодого человека  Улыбающийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Декабрь 22, 2009, 18:13 »

Понятно то, что до Кьютового контрола, в отличии от стандартного виндового, нельзя достучаться через винапи.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Декабрь 22, 2009, 19:46 »

Понятно то, что до Кьютового контрола, в отличии от стандартного виндового, нельзя достучаться через винапи.
Ну до окон-то можно, да толку все равно немного. Структур данных не получить
Записан
Cool Smile
Гость
« Ответ #7 : Декабрь 23, 2009, 00:09 »

Поскольку я новичёк, имею право играть блондинку Улыбающийся - почему нельзя получить структур данных? Насколько я понял по публикациям идею, QT приложение крутит свою очередь событий, принимая всё родительским окном. Но может алгоритм распределения запросов открытый (все ж кроссплатформенная идея Улыбающийся ) и притворяясь "папой" можно попросить отдать содержимое чайлд контрола?

>> А вообще мне нравится вопрос любознательного молодого человека 
А давайте обозначим, что "любознательный молодой человек" заинтересован в решении этой задачи? Улыбающийся
   
Записан
Dendy
Гость
« Ответ #8 : Декабрь 23, 2009, 01:41 »

Для начала узнайте точную версию Qt, с которой была собрана программа. Достаньте исходники Qt этой версии. Подключитесь к программе отладчиком и в ассемблерном коде, руководствуясь заголовочниками ищите данные. А если программа собрана с дебажными символами - так вообще песня.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #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 Offline

Сообщений: 11445


Просмотр профиля
« Ответ #10 : Декабрь 23, 2009, 17:53 »

Поскольку я новичёк, имею право играть блондинку Улыбающийся - почему нельзя получить структур данных? Насколько я понял по публикациям идею, QT приложение крутит свою очередь событий, принимая всё родительским окном. Но может алгоритм распределения запросов открытый (все ж кроссплатформенная идея Улыбающийся ) и притворяясь "папой" можно попросить отдать содержимое чайлд контрола?
Ну допустим (хотя я не вижу как) можем как-то управлять контролом, и что с того? Откуда мы знаем в каком окне какой контрол, что он делает и.т.п.? Пробежать по всем QTextEdit и вставить в каждый неприличное слово - вот максимум после долгих усилий. Стоит ли тратить время на примитивные пакости? Улыбающийся
Записан
denka
Гость
« Ответ #11 : Декабрь 23, 2009, 23:12 »

Ну допустим (хотя я не вижу как) можем как-то управлять контролом, и что с того? Откуда мы знаем в каком окне какой контрол, что он делает и.т.п.? Пробежать по всем QTextEdit и вставить в каждый неприличное слово - вот максимум после долгих усилий. Стоит ли тратить время на примитивные пакости? Улыбающийся
На самом деле это не примитивные пакости. Есть очень не плохая система, написанная на Qt, для создания GUI тестов для Qt приложений, которая использует данный подход.
« Последнее редактирование: Декабрь 23, 2009, 23:17 от den'ka » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #12 : Декабрь 24, 2009, 01:03 »

А вот эта штука не подойдёт - QSpy?

П.С. сам не пользовался
Записан

Юра.
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #13 : Декабрь 24, 2009, 04:08 »

Цитировать
А вот эта штука не подойдёт - QSpy?
Посмотрел какой-то фейк треш не рабочий... к сожалению, уж подкмал как круто было бы - натравил на запущенную Qt программу и отлаживай..
В общем у меня не заработало и беглый взгляд на исходники подталкивает на мысль что скрин на странице QtApps это фотошоп из дизайнера -- короче фейк толкает кто-то...
И видео корявое сбацал только чтобы свой фейк подтвердить - ненавижу таких уродов моральных...
« Последнее редактирование: Декабрь 24, 2009, 04:12 от break » Записан
Rcus
Гость
« Ответ #14 : Декабрь 24, 2009, 05:01 »

Цитировать
А вот эта штука не подойдёт - QSpy?
Посмотрел какой-то фейк треш не рабочий... к сожалению, уж подкмал как круто было бы - натравил на запущенную Qt программу и отлаживай..
В общем у меня не заработало и беглый взгляд на исходники подталкивает на мысль что скрин на странице QtApps это фотошоп из дизайнера -- короче фейк толкает кто-то...
И видео корявое сбацал только чтобы свой фейк подтвердить - ненавижу таких уродов моральных...
Хм... а у меня работает, но в описании указано прямо что работает только для Linux (хотя поверхностное изучение исходников показало что работать будет только при динамической линковке при поддержке LD_PRELOAD).
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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