![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Гость_Andrey_* |
![]() ![]()
Сообщение
#1
|
Гости ![]() |
Есть такая проблема. Внедрил main form qt приложения в vcl mdi форму сишного приложения средствами Win API. Все отлично внедрилось, отрисовка работает, клавиатурные события обрабатываются, но мышь...
Вобщем qt форма продолжает использовать глобальные координаты вместо локальных. При этом весьма странное дело, какие то виджеты используют локальные координаты и ведут себя нормально, а какие глобальные и гонят... Че токо не пробовал со стороны сишного приложения чтобы исправить дело (средствами winapi), но ниче не помогает. Видимо придется менять в qt части (код доступен), вот только с чего начать не знаю. Какие будут предложения коллеги ![]() Забегая вперед скажу что пенести все в одну среду пока не вариант. Каждая составляющая 10000яч строк кода и написана разными людьми, так что пока нет возможности собрать все в кучу. |
|
|
![]() |
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
какие то виджеты используют локальные координаты и ведут себя нормально, а какие глобальные и гонят... а зависимость улавливается ? Или это всё случайно происходит. И как узнал, что координаты используются глобальные ? Может быть, ты просто пересчитываешь в самом виджете их некорректно Сообщение отредактировал Алексей1153 - 24.11.2010, 8:04 |
|
|
Гость_Andrey_* |
![]()
Сообщение
#3
|
Гости ![]() |
какие то виджеты используют локальные координаты и ведут себя нормально, а какие глобальные и гонят... а зависимость улавливается ? Или это всё случайно происходит. И как узнал, что координаты используются глобальные ? Может быть, ты просто пересчитываешь в самом виджете их некорректно Есть такая зависимость. Объекты которые лежат на floating window (прицепленное к форме qt) обрабатываются некокрректно. Сцена вроде работает. Есть еще splitter тоже работает корректно. Видимо закономерность есть. А узнал просто окно qt прицеплено к mdi форме моего приложения. координаты 0,0. Соотвественно если пододвинуть mdi окно к глобальный x=0 и y смещенный на ширину заголовка main window+menu+заголовок mdi window то в списке дереве выбирается элемент смещенный на этот глобальный y, а не тот что под мышью. Те такое чувство что глобальные координаты не пересчитываются в локальные. В некоторых виджетах действительно некоретно мной считается("самопальные"), те корректно если предполагать что qt window overllaped а не child. но события клика на стандартных виджетах обрабатываются qt а не мной. курил qtwincontrol там тот же winapi и тотже setparent. есть конечно еще хуки на системные события типа tab и выход на системное меню, но это уже другой вопрос. единственное что форма qt после создания сразу определябтся как child и только потом крепяться виджеты, а у меня уже после всего конструктора. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 11.6.2025, 6:29 |