![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Adun177 |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 19 Регистрация: 25.2.2009 Пользователь №: 575 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Добрый день!
Возник такой вопрос Я делаю приложение на OpenGL - openscenegraph и QT на QT сделал диалоги(наследники QWidget) сделал также наследника от QWidget для OpenGL (окно опенжл у меня без рамки если что) В начале я делаю инициализацию окна GL далее вывожу дилог выбора упражнения dialog->show() выбираю 3D объекты которые надо загрузить и далее убираю этот диалог с экрана dialog->close(); все нормально работает все крутится. Далее я нажимаю на кнопку выбора упражнения все в моем окне замирает опять использую dialog->show() но во второй раз в окне ничего не рисуется хотя paintevent отрабатывает. Мне кажется что во второй раз не происходит передача управления в опенжл окно. Сорри за нубство но может быть кто-нибудь знает как сделать так чтобы передавалась передача управляющему окну. Удалять и заново создавать окно не вариант так как загружаются очень большие 3D данные. |
|
|
![]() |
Adun177 |
![]()
Сообщение
#2
|
Студент ![]() Группа: Участник Сообщений: 19 Регистрация: 25.2.2009 Пользователь №: 575 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Да наверное я трудный вопрос задал
постараюсь по другому у меня не передается назад управление в мой виджет даже если я вызываю QMessageBox::critical(0,message[151],message[7],QMessageBox::Cancel); после нажатия на кнопку у меня зависон в главном виджете наверное простая ошибка однако я незнаю как отловить ее |
|
|
ViGOur |
![]()
Сообщение
#3
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Скорей не понятно, что, когда и откуда вызывается и как это делается!
![]() Основной кусок кода, если можно, лучше покажи. Если код большой, то обрами его в тэг [expand][/expand] |
|
|
Adun177 |
![]()
Сообщение
#4
|
Студент ![]() Группа: Участник Сообщений: 19 Регистрация: 25.2.2009 Пользователь №: 575 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
код очень большой если потребуется почищу его
пока заметил такую вещь мой виджет наследник QWidget и рисует графику через paintevent но если я вызываю диалог через paintevent то замораживается основной виджет
однако если я вызываю через keypressevent то все работает как надо и передается управление в основной виджет
теперь остается решить задачу как вызывать диалог не через paintevent если непонятно то завтра на работе вычищу код и выложу но может быть для знающих людей уже решение на поверхности.
Причина редактирования: используй тег code
|
|
|
molchanoviv |
![]()
Сообщение
#5
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: ![]() ![]() ![]() |
У меня была наподобие проблема. Решил тогда написанием функиции на GL где в качестве аргументов передавал в нее настройки. Реализацию к сожалению не помню.
|
|
|
BRE |
![]()
Сообщение
#6
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
но если я вызываю диалог через paintevent то замораживается основной виджет Так а зачем ты пытаешся в обработчике события перерисовки показывать диалог? Как-то я смысла в этом не вижу совсем? Цитата Далее я нажимаю на кнопку выбора упражнения.... Вот в обработчике сигнала нажатия на эту кнопку и открывай диалог. Сообщение отредактировал BRE - 17.3.2009, 23:01 |
|
|
Adun177 |
![]()
Сообщение
#7
|
Студент ![]() Группа: Участник Сообщений: 19 Регистрация: 25.2.2009 Пользователь №: 575 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
BRE, а как именно связать сигналом для моего случая?
|
|
|
BRE |
![]()
Сообщение
#8
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Adun177 |
![]()
Сообщение
#9
|
Студент ![]() Группа: Участник Сообщений: 19 Регистрация: 25.2.2009 Пользователь №: 575 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Спасибо за обсуждение
Все оказалось просто - так как я пользуюсь OpenSceneGraph - там зашито что при стандартном создании контектста ОпенЖЛ на клавишу Escape вешается закрытие контеста и закрытие окна а так как получается что рендерится в QT то контекст закрывается а окно нет. Запретив это у меня все хорошо работает. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 1.9.2024, 3:57 |