Название: Меню окна в VS Отправлено: Smogg от Февраль 11, 2013, 14:56 Каким-то странным образом меню окна (то, которое File... вместе с прочими About...'ами) не реагирует на нажатие мышки. При этом на нажатие Alt с клавы оно открывается.
Не подскажите, в чем может быть дело? Компилирую из под Visual Studio. Название: Re: Меню окна в VS Отправлено: Bepec от Февраль 11, 2013, 15:07 в твоём коде...
Название: Re: Меню окна в VS Отправлено: Smogg от Февраль 11, 2013, 15:36 Да, в моем коде. Новый голый проект с меню не глючит.
Тогда вопрос по другому, как можно добиться, чтобы строка меню не реагировало на мышь и отвечало на клаву? Причем, если меню раскроется, то выпавший список мышкой выбирается... Название: Re: Меню окна в VS Отправлено: Old от Февраль 11, 2013, 15:40 Тогда вопрос по другому, как можно добиться, чтобы строка меню не реагировало на мышь и отвечало на клаву? Перехватывать события мыши для меню и не правильная их обработка?Название: Re: Меню окна в VS Отправлено: Smogg от Февраль 11, 2013, 15:46 Перехватывать события мыши для меню и не правильная их обработка? Да, вспомнил. Я удалял меню, а потом снова добавил. И наверно от этого что-то где-то потерялось... Upd. Какой-то абсурд... Начало меню, пикселей так 60, на мышку не реагируют сапсем. Чуть сдвинуть вправо дальше этих 60, оставаясь на том же пункте меню - сразу подсвечивается. Название: Re: Меню окна в VS Отправлено: Old от Февраль 11, 2013, 16:59 Upd. Там виджет какой-то болтается...Какой-то абсурд... Начало меню, пикселей так 60, на мышку не реагируют сапсем. Чуть сдвинуть вправо дальше этих 60, оставаясь на том же пункте меню - сразу подсвечивается. Название: Re: Меню окна в VS Отправлено: Smogg от Февраль 11, 2013, 18:11 Там виджет какой-то болтается... Да, какая-то дрянь вылезла... И как про нее узнать что нибудь конкретное? Сочинил вот такой обработчик таймера: Код: void LazyWnd::tmrAct(){ При переводе мышки числовое значение меняется и пропадает название переменной для подуказательного виджета. "No widget" не выскакивает. Т.е. указатель действительно на что-то указывает, но программного имени у этого чего-то нету... Название: Re: Меню окна в VS Отправлено: Old от Февраль 11, 2013, 18:16 Ищи виджет без родителя и не установленный не в один компоновщик.
Название: Re: Меню окна в VS Отправлено: Smogg от Февраль 11, 2013, 19:27 При попытке скрыть - скрывается без вопросов.
Его родитель - само окно, такой же как и y menuBar'a . Искать безымянный widget можно, но это некрасиво. При старте программы скрывать всех чайлдов, а потом показать только те, что нужно - как то не то чтобы очень... Можно ли что-нибудь узнать про виджет, если есть только указатель на него? Напрмер, класс? Название: Re: Меню окна в VS Отправлено: Old от Февраль 11, 2013, 19:30 Можно ли что-нибудь узнать про виджет, если есть только указатель на него? Напрмер, класс? Можно. Но ты его сам в своих исходниках найти не можешь? :)Смотри: const QMetaObject * QObject::metaObject () const [virtual] const char * QMetaObject::className () const Название: Re: Меню окна в VS Отправлено: Smogg от Февраль 11, 2013, 20:39 Можно ли что-нибудь узнать про виджет, если есть только указатель на него? Напрмер, класс? Можно. Но ты его сам в своих исходниках найти не можешь? :)Смотри: const QMetaObject * QObject::metaObject () const [virtual] const char * QMetaObject::className () const Йехууу!! Finally! Спасибо! У этой фигни класс - TrayIcon)) Который создал я, и назначил родителем первый попавшийся виджет, то есть главное окно. Этот TrayIcon наследовался от Qwidget и вот почему отображался, хотя правильно отбражаться не умеет (нафиг работающему с треем классу какое-лтбо визуальное отображение?). |