1 / 1 / 0
Регистрация: 06.12.2020
Сообщений: 42
|
||||||
1 | ||||||
QFrame и событие MouseButtonRelease не дружат08.01.2024, 04:33. Показов 1555. Ответов 7
Здравствуйте!
Мучаюсь с тем, чтобы заставить срабатывать событие MouseButtonRelease для объекта QFrame, на котором рисую мышью. Вот мой код:
Подскажите, пжл. вариант решение данной проблемы? Спасибо.
0
|
08.01.2024, 04:33 | |
Ответы с готовыми решениями:
7
QFrame и QGLWidget Qframe.h no such file or directory QListView съедает QFrame QFrame и отрисовка вручную |
08.01.2024, 07:10 | 2 | |||||
Вот так работают все три события: MouseButtonPress,MouseButtonRelease и MouseMove. Это то что вам требовалось?
2
|
1081 / 685 / 184
Регистрация: 30.03.2021
Сообщений: 2,138
|
|
08.01.2024, 17:27 | 3 |
AndreyM74, лучше сделать кастомный класс от QFrame и переопределить там paintEvent(), где и рисовать свои линии.
В eventFilter() таким способом, как в шапке темы - будет рисование при возникновении любых событий, поступающих от любых обьектов, принадлежащих виджету, на который назначен ивентфильтр.
1
|
1 / 1 / 0
Регистрация: 06.12.2020
Сообщений: 42
|
|
08.01.2024, 18:15 [ТС] | 4 |
insite2012, спасибо большое!
Я верю, что ваше решение работает. Но мне теперь надо разбираться, как это решение встроить в мой проект, который пока совсем небольшой. На главной форме уже имеются компоненты, в том числе и QFrame. Динамически создаваемых виджетов нету и в ближайшей перспективе не предвидится. На кнопки на тулбаре внимание можно не обращать - они не задействованы. Не могли бы вы посмотреть на проект, который прикладываю к сообщению. Мне потом так будет проще разобраться, что к чему. Qt C++ я начал работать только полтора года назад.
0
|
08.01.2024, 23:09 | 5 |
AndreyM74, я скачал ваш проект, посмотрю отпишусь. Но совет выше очень дельный, сделайте свой холст и на нем рисуйте. И вообще я бы сразу посоветовал смотреть в строну QGraphicsView, более широкие возможности рисования.
2
|
1081 / 685 / 184
Регистрация: 30.03.2021
Сообщений: 2,138
|
|
09.01.2024, 01:44 | 6 |
Вот кстати да! Где-то уже выкладывал похожие рисовалки и на виджетах, и на граф. сцене- лень искать
Проект тоже бегло посмотрел, там бесконечная рекурсия в 53 строчке, рефакторить лень... Взял код уважаемого insite2012 из 2-го поста и добавил кастомный QFrame - получился йожек из бухенвальда, на гифке Код не выкладываю т.к. сложный он будет для понимания ТСу,- только запутает, наверное.
2
|
09.01.2024, 07:24 | 7 |
Аналогично, бегло взглянул (правда сначала написал к нему CMakeLists.txt, *.pro как то уж совсем попахивает вековой пылью), при запуске сразу идет бесконечный вывод в консоль. Думаю что унаследоваться от QFrame или задействовать QGraphicsFramework будет более корректным решением.
2
|
1 / 1 / 0
Регистрация: 06.12.2020
Сообщений: 42
|
|
09.01.2024, 12:41 [ТС] | 8 |
insite2012, sdf45, благодарю за дискуссию! По крайней мере для меня она оказалась полезной.
Сегодня мне конкретизировали ТЗ, и после этого выбор в пользу QGraphicsFramework для меня стал очевиден на 100%. А в качестве упражнения на досуге попробую унаследоваться от QFrame.
0
|
09.01.2024, 12:41 | |
09.01.2024, 12:41 | |
Помогаю со студенческими работами здесь
8
QFrame не перерисовывается после ресайза Выпадающий список для QFrame Изменения порядка child у QWidget(QFrame) Создание экземпляра QFrame произвольной формы Изменения порядка children у QWidget(QFrame) Странная задержка после update в QFrame Две ОС (7 и 8) не дружат Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |