Russian Qt Forum

Программирование => С/C++ => Тема начата: inout от Август 29, 2010, 12:34



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


Название: Re: как посылать сообщения кнопкам
Отправлено: lit-uriy от Август 29, 2010, 13:20
вызывай слот:
void QAbstractButton::click ()   [slot] (http://doc.crossplatform.ru/qt/4.6.x/qabstractbutton.html#click)

дочерние виджеты можно найти используя функции класса QObject:
T QObject::findChild ( const QString & name = QString() ) const (http://doc.crossplatform.ru/qt/4.6.x/qobject.html#findChild)
П.С.
Этой теме место в подфоруме Qt.


Название: Re: как посылать сообщения кнопкам
Отправлено: inout от Август 29, 2010, 13:34
   Спасибо. А нельзя ли обойтись средствами системы? Я из-за такой мелочи не хочу въезжать в Qt.
Ведь как-то винда посылает сообщение этому окну.


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


Название: Re: как посылать сообщения кнопкам
Отправлено: inout от Август 29, 2010, 15:06

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


Название: Re: как посылать сообщения кнопкам
Отправлено: lit-uriy от Август 29, 2010, 15:17
библиотека Qt сама рисует виджеты, поэтому WinApi тут ничем не поможет.
Здесь такой номер не проходит. EnumChildWindows возвращает 0, т.е. дочерних окон не находит совсем, хотя они есть.
с точки зрения системы их нет.