Нужны идеи как реализовать поведение собственного виджета |
Здравствуйте, гость ( Вход | Регистрация )
Нужны идеи как реализовать поведение собственного виджета |
SABROG |
15.4.2010, 16:29
Сообщение
#21
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
Litkevich Yuriy |
15.4.2010, 16:40
Сообщение
#22
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Может где то в ихнем блоге поинтересоваться где можно исходнички взять? запостил в форум, голосуйте/поддерживайте
|
|
|
Litkevich Yuriy |
23.4.2010, 21:42
Сообщение
#23
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Хе-хе-хе. А я оказывается ещё тот куркуль.
У меня есть рабочая копия их хранилища, в состоянии 902 версии. Залил на наш FTP |
|
|
SABROG |
23.4.2010, 23:28
Сообщение
#24
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Опяньки, гуляем мужики
Угумс.
Врапперы, хмм. Короче принцип у них такой. - QWindowSurface используется, чтобы быстро сграбить окно. accept - нужно точно прицеливаться в уголок, чтобы курсор мышки не попадал на пользовательский виджет. Для этого сделаны отступы. fail - пользовательский виджет скрывается, чтобы освободить место для рисования на background'e под ними (на wrapper'e). fail Откуда растут "ноги" у двух последних решений и почему fail: В Qt нет стандартной возможности перехватывать события дочерних виджетов (даже если они намеренно блокируют их, нужен перехват). Отсюда отступ, который дает возможность пользователю кликнуть на виджет под пользовательским виджетом в маленьком пространстве в углу. В Qt нет стандартной возможности рисовать родительскому виджету поверх всех своих детей. Отсюда уловка с сокрытием пользовательского виджета. Они конечно могли обойти это, но код бы серьезно вырос. У меня была надежда на бажный QGraphicsEffect о котором я запостил багрепорт и только через 10 дней тролли попросили меня предоставить компилируемый проект с демонстрацией проблемы. Затем они перевели багрепорт с "Paint system" на "Graphics view", что меня еще больше расстроило. Если они зарубят на корню возможность использовать QGraphicsEffect без графической сцены, то это меня сильно расстроит. Собственно никакой магии в демке не оказалось. Без того же QWindowSurface в ней вполне реально обойтись. По крайней мере я теперь хоть знаю, что мыслил правильно и все мои догадки подтвердились. Сообщение отредактировал SABROG - 23.4.2010, 23:56 |
|
|
Litkevich Yuriy |
24.4.2010, 0:25
Сообщение
#25
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
- нужно точно прицеливаться в уголок, чтобы курсор мышки не попадал на пользовательский виджет. Для этого сделаны отступы. fail можно положить в угол прозрачный виджет, навёл на него мыша, "уголок бумаги" отогнулся, как сделано в некоторых типах веб рекламы- пользовательский виджет скрывается, чтобы освободить место для рисования на background'e под ними (на wrapper'e). fail опять же можно рисовать на наложеном поверх {полу}прозрачном виджете
|
|
|
Текстовая версия | Сейчас: 23.4.2024, 11:57 |