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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: как посылать сообщения кнопкам  (Прочитано 3947 раз)
inout
Гость
« : Август 29, 2010, 12:34 »

   Здравствуйте. В Qt я полный ноль, подскажите, как решить проблемку. Есть программа, написанная с использованием Qt (не моя). На этом окне мне нужно программно нажимать несколько кнопок. В прогах, написанных на WinAPI, я делал просто: имея хэндл родительского окна, функцией EnumChildWindows получаем хэндлы нужных кнопок, ну и дальше понятно: PostMessage(...).
   Здесь такой номер не проходит. EnumChildWindows возвращает 0, т.е. дочерних окон не находит совсем, хотя они есть. Я пробовал посылать нажатие главному окну, с координатами - ничего не происходит. Как быть?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Август 29, 2010, 13:20 »

вызывай слот:
void QAbstractButton::click ()   [slot]

дочерние виджеты можно найти используя функции класса QObject:
T QObject::findChild ( const QString & name = QString() ) const
П.С.
Этой теме место в подфоруме Qt.
« Последнее редактирование: Август 29, 2010, 13:22 от lit-uriy » Записан

Юра.
inout
Гость
« Ответ #2 : Август 29, 2010, 13:34 »

   Спасибо. А нельзя ли обойтись средствами системы? Я из-за такой мелочи не хочу въезжать в Qt.
Ведь как-то винда посылает сообщение этому окну.
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #3 : Август 29, 2010, 14:51 »

А нельзя ли обойтись средствами системы?
Ну если вы разрабатываете программу _только_ под  Windows, то тогда вам действительно (наверное) не нужно тащить  Qt для этого. А если кроссплатформенно -- тогда (ИМХО) для пользовательского интерфейса  Qt -- самое то.
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
inout
Гость
« Ответ #4 : Август 29, 2010, 15:06 »


  Да, только под Windows, и уже слишком много сделано, чтобы заюзать еще и Qt. Я наверное плохо объяснил что мне нужно. Мне надо из своей программы периодически нажимать кнопки в чужой программе, написанной на Qt. Моя пишется на "чистом" Win32API.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Август 29, 2010, 15:17 »

библиотека Qt сама рисует виджеты, поэтому WinApi тут ничем не поможет.
Здесь такой номер не проходит. EnumChildWindows возвращает 0, т.е. дочерних окон не находит совсем, хотя они есть.
с точки зрения системы их нет.
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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