Название: Widgets on top of QGLWidget Отправлено: __Heaven__ от Июль 15, 2014, 16:53 Здравствуйте!
Помогите, пожалуйста разобраться, каким образом можно добавить, к примеру, кнопку на QGLWidget. Я попробовал создать QHBoxLayout, на который добавил QPushButton и QLabel, но получил в итоге два белых прямоугольника... Название: Re: Widgets on top of QGLWidget Отправлено: Igors от Июль 15, 2014, 17:41 Проверил - добавляется без проблем (Qt 5.2, Win7)
Код
Название: Re: Widgets on top of QGLWidget Отправлено: __Heaven__ от Июль 15, 2014, 21:15 Спасибо.
Я пытался создавать кнопку в конструкторе класса, назначая родителем сам класс... Видимо, так делать нельзя. Igors, я заметил, что в Вашем примере имеется черная рамка вокруг кнопки. Можно ли добиться "гладкости" и "плавности" интерфейса как в современных CAD/CAE системах? (Например как в SolidWorks, написанном на .NET, см. аттач. Дерево, кнопочки в окне рисования...) Название: Re: Widgets on top of QGLWidget Отправлено: __Heaven__ от Июль 15, 2014, 21:33 Снова словил прорисовку прямоугольника вместо кнопки... Причина ясна, хочется понять почему...
Вот рабочий код, при котором всё происходит так как ожидается: Код: #include <QtWidgets> Код: int main( int argc, char **argv ) Название: Re: Widgets on top of QGLWidget Отправлено: Igors от Июль 16, 2014, 10:07 Но стоит мне вывести QGLWidget отдельным окном, как проявляется этот эффект: Установите для QGLWidgetКод Вообще может для Вас есть смысл использовать "OpenGL сборку" Qt (сам не пробовал) Можно ли добиться "гладкости" и "плавности" интерфейса как в современных CAD/CAE системах? (Например как в SolidWorks, написанном на .NET, см. аттач. Дерево, кнопочки в окне рисования...) Ну а чего ж нельзя, рисовать все в OpenGL c анти-алиасом, не исключено Qt это уже и делает. Другое дело что это "всего лишь UI" т.е. небольшая часть всей работы. Было бы чему посвятить это рисование, а "само по себе" оно бесцельноНазвание: Re: Widgets on top of QGLWidget Отправлено: __Heaven__ от Июль 16, 2014, 10:43 Установите для QGLWidget Приведенный Вами код вызывает ошибку Sigmentation fault при исполнении строки return app.exec();Код Вообще может для Вас есть смысл использовать "OpenGL сборку" Qt (сам не пробовал) Я использую именно OpenGL сборку. Название: Re: Widgets on top of QGLWidget Отправлено: Igors от Июль 16, 2014, 11:06 Приведенный Вами код вызывает ошибку Sigmentation fault при исполнении строки return app.exec(); У меня не вызывает :) Почему происходит... ну даже если бы я знал почему - это не метод где-то раздобыть/прочитать ответ. Надо смотреть консоль и (довольно долго) шагать в отладчике, Тогда станет ясно - может флаг какой-то нужно устанавливать (так часто бывает), а может это просто не поддерживается. И цель ставить более четко/практично: рисовать поверх можно, ну не будем делать QGLWidget окном (это и не нужно). Название: Re: Widgets on top of QGLWidget Отправлено: __Heaven__ от Июль 16, 2014, 12:08 И цель ставить более четко/практично: рисовать поверх можно, ну не будем делать QGLWidget окном (это и не нужно). Согласен. Это было просто желание разобраться, так сказать, для себя.На деле я уже реализовал всё, что мне нужно было. Спасибо. |