Russian Qt Forum
Март 28, 2024, 23:12
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Win API [Решено]
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Win API [Решено] (Прочитано 2623 раз)
sergek
Гипер активный житель
Offline
Сообщений: 861
Мы должны приносить пользу людям.
Win API [Решено]
«
:
Июль 19, 2018, 12:23 »
Жаль, что нет "вопросы идиотов")) У меня вопрос из этого раздела - скажите, GUI в windows в Qt сделан на основе win api? Можно ли использовать win api для доступа к элементами GUI программ qt?
«
Последнее редактирование: Июль 19, 2018, 14:31 от sergek
»
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Win API
«
Ответ #1 :
Июль 19, 2018, 13:09 »
> GUI в windows в Qt сделан на основе win api?
угу
> Можно ли использовать win api для доступа к элементами GUI программ qt?
Вроде нет, т.к. все виджеты отрисовываются самим Qt, и не являются "нативными" объектами.
Можно найти только хендл самого окна приложения, но вот хендлы его контролов/виджетов не найдешь, их нет
.
PS: Хотя хз, никогда не задавался таким вопросом.
Записан
ArchLinux x86_64 / Win10 64 bit
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Win API
«
Ответ #2 :
Июль 19, 2018, 13:49 »
Во всяком случае нативные хендлы создаются при вызове QWidget::winId(), хотя иногда глючат размеры, лучше до show. Получать таким образом нужное HWND можно, причем не только для окон верхнего уровня.
Записан
sergek
Гипер активный житель
Offline
Сообщений: 861
Мы должны приносить пользу людям.
Re: Win API
«
Ответ #3 :
Июль 19, 2018, 14:31 »
Ок, спасибо. Действительно, получить окно у меня получалось, а самый простой lineedit - нет.
Закроем тему.
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Win API [Решено]
«
Ответ #4 :
Июль 19, 2018, 14:58 »
Да простят мою навязчивость, но я ведь помню что работало
Код:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget * win = new QWidget;
printf("winID = %p\n", (void *) win->winId());
QLineEdit * edit = new QLineEdit(win);
WId id = edit->winId();
printf("editID = %p\n", (void *) id);
win->show();
return app.exec();
}
id ненулевой, и тот самый что покажет утилита Spy
Записан
sergek
Гипер активный житель
Offline
Сообщений: 861
Мы должны приносить пользу людям.
Re: Win API [Решено]
«
Ответ #5 :
Июль 19, 2018, 16:02 »
Речь немного о другом - нужно прочитать содержимое элементов GUI программы, написанной на Qt. Я раньше делал нечто подобное - отыскивается дескриптор главного окна программы, потом перебираются дочерние дескрипторы и т.д. Это получается со многими программами, например, попробовал сейчас winscp, putty (во вложении), с проводником. А для программ qt отрисовывается только главное окно и все.
Вообще-то это не мне нужно, а мне сильно углубляться в тему не хочется. Так, попробовал старые наработки - не получилось, и ладно)
Спасибо, коллеги.
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...