Название: как посылать сообщения кнопкам Отправлено: 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, т.е. дочерних окон не находит совсем, хотя они есть. с точки зрения системы их нет. |