Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Совмещение виджетов и opengl
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
KuvshinoF
На форме есть 5 виджетов (квадратные QLabel-ы), расположенные в строку - между каждой из их пары надо нарисовать opengl-стрелку(функция отрисовки стрелки есть). Как это сделать, то есть совместить opengl-сцену с, получается что, наложенными на нее виджетами? Виджеты должны быть именно виджетами, а не opengl-рисованными квадратами, так как надо будет обрабатывать их онклик, да, можно и у opengl-сцены обработать mousePressEvent, но тогда как определить на какой именно квадрат(типа QLabel) кликнули? по координатам мыши проверять как-то не очень объектно-ориентированно, поэтому элементы для онклика должны быть отдельными объектами, т.е. виджетами.
Алексей1153
KuvshinoF, редактор форм и компоновщик в помощь )
Можно и вручную накидать, если не лень

Нажмите для просмотра прикрепленного файла

ну или поверх одного виджета opengl создать чайлды - лейблы и разместить без компоновщиков. Тогда они, теоретически, будут всегда поверх. Но за координатами нужно будет следить вручную
KuvshinoF
Ну заводить для каждой стрелки свою opengl-сцену (QOpenGLWidget) точно не лучший вариант наверное, не оптимальный, а положить поверх одной gl-сцены виджеты не выходит.
Алексей1153
Цитата(KuvshinoF @ 28.5.2020, 11:53) *
а положить поверх одной gl-сцены виджеты не выходит.


нормально выходит всё (у меня всё создано с редактора, но можно и без него. Родительство расставил вручную, см. код)

Нажмите для просмотра прикрепленного файла

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->pushButton->setParent(ui->openGLWidget);
    ui->label->setParent(ui->openGLWidget);
}
KuvshinoF
Спасибо, буду пробовать
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.