Очистка приложений Qt c ++ - PullRequest
2 голосов
/ 20 марта 2020

Я бы хотел взаимодействовать с открытым окном qt (написанным на c ++), используя код. Код будет действовать как пользователь и будет полностью независим от кода окна qt. Что-то вроде веб-скребка, но с использованием qt (что гораздо сложнее). Первое, что я пытаюсь сделать, это имитировать c нажатие кнопки pu sh.

Моей первой интуицией было добавить некоторый код на С ++ в существующий код во время выполнения и выполнить что-то вроде «pushButton.click (); ». После нескольких поисков я попытался использовать общую библиотеку Dynami c. Библиотека будет реализовывать код кнопки, на которую я хочу нажать, и будет динамически добавляться к существующему коду C ++. Это решение может работать, но, кажется, очень сложно и не переносимо. Кроме того, я хотел бы, чтобы решение было очень независимым от кода окна.

Конечно, qt-код окна будет доступен со стороны кода очистки.

Являются ли некоторые другие решения более практичными?

РЕДАКТИРОВАТЬ: GammaRay, кажется, работает нормально. Мне удается выполнить нажатие на кнопку с помощью GUI. Однако GammaRay, похоже, не предоставляет форму интерфейса командной строки. Как мы можем прочитать из официальной документации:

Клиент GammaRay доступен в двух формах:

  • как отдельное приложение, как показано на следующем снимке экрана
  • как Плагин Qt Creator (только для Qt Automotive Suite)

Есть ли возможность выполнить клик с помощью GammaRay и без GUI? Некоторые другие решения работают только с использованием кода?

1 Ответ

1 голос
/ 23 марта 2020

Целью GammaRay является самоанализ, а не автоматизация. Я рекомендую использовать Squi sh (https://www.froglogic.com/de/squish/editions/qt-gui-test-automation/), в зависимости от необходимых лицензий цена не так высока.

Если вы не хотите тратить деньги, вам нужно создать собственный интерфейс IP C с удаленными командами.

...