В настоящее время я работаю над проектом, в котором я использую C ++, OpenGL, Qt 5.9.2 и Microsoft Visual Studio Professional 2015 в 64-разрядной операционной системе Windows 10 Pro.
У меня есть пользовательский интерфейс, который я создал, и в этом пользовательском интерфейсе есть QGLWidget, который я использую для процессов рисования, с другими виджетами, такими как кнопки и dockWidget. У меня есть класс Ball, и у него есть переменные (distance (double) и angle (int)), которые определяют, где будет отображаться экземпляр этого Ball внутри QGLWidget. В классе мяча есть еще 2 переменные: id (int), model (String) и year (int). Любой другой процесс рисования рисует линии, кроме рисунков Ball.
Рисунки являются двухмерными.
Каждый шар имеет один и тот же цвет (rgb)!
Первая проблема: Я хочу щелкнуть левой кнопкой мыши на одном из экземпляров Ball иЯ хочу отобразить его идентификатор, модель и год в DockWidget.
Вторая проблема: Делая то, о чем я упоминал в разделе «Первая проблема». Я хочу, чтобы изображение курсора изменялось при наведении курсора на любой из экземпляров Ball, и я возвращался к стандартному курсору мыши Windows, а не к нему.
Я создал функцию, которая проверяет, имеет ли MouseEvent значение LeftClick:
void DisplayManager::mousePressEvent(QMouseEvent* ev) {
if (ev->buttons() & Qt::LeftButton) { // Balls Are Green
if(// CHECK IF THERE IS A BALL AT THE CLICKED COORDINATES) {
// DISPLAY THE X and Y OF THE BALL AT THE DOCK WIDGET
}
}
}
Это моя функция initializeGL: ( DisplayManager - это имя моего QGLWidget )
void DisplayManager::initializeGL() {
glEnable(GL_COLOR_MATERIAL); // Enables the changing of the draw color with glColor() functions
glColor3f(0.0, 1.0, 0.0);
glEnable(GL_DEPTH_TEST);
glClearColor(0, 0, 0, 1); //sets a black background 1 0 0 1
}
Исходя из этого, это проблема комплектования, и есть несколько сведений о нейв интернете, но я не использую GLUT и не использую шейдеры. Поэтому в свете всего этого я не смог найти эффективного решения или подсказки о том, как мне достичь всего, чего я хочу.
Я был бы очень рад, если бы кто-нибудь мог помочь мне хотя бы с одной из этих проблем. .