Russian Qt Forum

Qt => Общие вопросы => Тема начата: pakulo от Май 11, 2007, 20:00



Название: workAreaResized
Отправлено: pakulo от Май 11, 2007, 20:00
Почему-то не срабатывает сигнал QDesktopWidget.

connect(QApplication::desktop(), SIGNAL(workAreaResized(int)), this, SLOT(changePosition()));

При изменении панели задач (перетягивая панельку на верх например) слот не вызывается...

Почему возникла такая потребность в вызове сигнала...
Получаю размер рабочей области через QApplication::desktop()->availableGeometry();
Но если передвинуть панель задач, то координаты остаются такими же как и при запуске приложения.


Название: workAreaResized
Отправлено: Разуев Максим от Май 11, 2007, 20:19
Проверь является ли changePosition слотом. (Он должен быть обьявлен в классе как слот). У меня тпк некоторые функции не вызывались.


Название: workAreaResized
Отправлено: pakulo от Май 11, 2007, 20:53
да, обьявлен, иначе б QT ругался...

может кто у себя проверить? может это глюк в Qt 4.2.2?


Название: workAreaResized
Отправлено: Разуев Максим от Май 12, 2007, 01:16
тогда незнаю, а насчет ругани Qt то в том и дело что он не ругается, если даже в connect указать вообще левую функцию.


Название: workAreaResized
Отправлено: pakulo от Май 12, 2007, 01:36
как это?
ругается еще й как :)
включи конскольку и все будет видно... по другому он никак не может ругаться (если ты имеешь ввиду во время компиляции)


Название: workAreaResized
Отправлено: Разуев Максим от Май 12, 2007, 06:30
в консоли он может и ругается. Но программа получается вполне рабочей.


Название: workAreaResized
Отправлено: pakulo от Май 12, 2007, 11:44
Конечно... по другому он никак не может ругаться, так как это ошибка не с++, а самого QT, посему ошибки он выдает в консоли.


Название: workAreaResized
Отправлено: Tonal от Май 13, 2007, 11:02
connect(QApplication::desktop(), SIGNAL(workAreaResized(int)), this, SLOT(changePosition()));

По моему, слот должен int принимать... ;-)


Название: workAreaResized
Отправлено: pakulo от Май 13, 2007, 18:03
А разве если в слотах нету нужных аргументов то они не игнорируются?
Но всеравно не работает...