crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QT widget OpenGL (openscenegraph)
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Adun177 Дата 19.3.2009, 10:39
  Спасибо за обсуждение
Все оказалось просто - так как я пользуюсь OpenSceneGraph - там зашито что при стандартном создании контектста ОпенЖЛ на клавишу Escape вешается закрытие контеста и закрытие окна а так как получается что рендерится в QT то контекст закрывается а окно нет.
Запретив это у меня все хорошо работает.
BRE Дата 17.3.2009, 23:37
 
Цитата(Adun177 @ 17.3.2009, 23:32) *
BRE, а как именно связать сигналом для моего случая?

connect( buttonSelectSample, SIGNAL( clicked() ), main_dialog, SLOT( show() ) );
Adun177 Дата 17.3.2009, 23:32
  BRE, а как именно связать сигналом для моего случая?
BRE Дата 17.3.2009, 22:59
 
Цитата(Adun177 @ 17.3.2009, 22:46) *
но если я вызываю диалог через paintevent то замораживается основной виджет

Так а зачем ты пытаешся в обработчике события перерисовки показывать диалог?
Как-то я смысла в этом не вижу совсем?

Цитата
Далее я нажимаю на кнопку выбора упражнения....

Вот в обработчике сигнала нажатия на эту кнопку и открывай диалог.
molchanoviv Дата 17.3.2009, 22:51
  У меня была наподобие проблема. Решил тогда написанием функиции на GL где в качестве аргументов передавал в нее настройки. Реализацию к сожалению не помню.
Adun177 Дата 17.3.2009, 22:46
  код очень большой если потребуется почищу его
пока заметил такую вещь мой виджет наследник QWidget и рисует графику через paintevent
но если я вызываю диалог через paintevent то замораживается основной виджет
void paintEvent( QPaintEvent * event ) 
{ 
                  
                  if (flag_start)
                  {
                        main->show();
                        Flag_start=false;
                  }
                  frame(); 
}

однако если я вызываю через keypressevent то все работает как надо и передается управление в основной виджет
 void keyPressEvent( QKeyEvent* event )
{
                  if(event->key()==Qt::Key_F11 )
                        main_dialog->show();
}

теперь остается решить задачу как вызывать диалог не через paintevent
если непонятно то завтра на работе вычищу код и выложу но может быть для знающих людей уже решение на поверхности.
ViGOur Дата 17.3.2009, 17:37
  Скорей не понятно, что, когда и откуда вызывается и как это делается! :)

Основной кусок кода, если можно, лучше покажи. Если код большой, то обрами его в тэг [expand][/expand]
Adun177 Дата 17.3.2009, 17:34
  Да наверное я трудный вопрос задал
постараюсь по другому
у меня не передается назад управление в мой виджет даже если я вызываю
QMessageBox::critical(0,message[151],message[7],QMessageBox::Cancel);
после нажатия на кнопку у меня зависон в главном виджете
наверное простая ошибка однако я незнаю как отловить ее
Adun177 Дата 17.3.2009, 11:53
  Добрый день!
Возник такой вопрос
Я делаю приложение на OpenGL - openscenegraph и QT
на QT сделал диалоги(наследники QWidget) сделал также наследника от QWidget для OpenGL (окно опенжл у меня без рамки если что)
В начале я делаю инициализацию окна GL далее вывожу дилог выбора упражнения dialog->show() выбираю 3D объекты которые надо загрузить и далее убираю этот диалог с экрана dialog->close();
все нормально работает все крутится. Далее я нажимаю на кнопку выбора упражнения все в моем окне замирает опять использую dialog->show() но во второй раз в окне ничего не рисуется хотя paintevent отрабатывает. Мне кажется что во второй раз не происходит передача управления в опенжл окно.
Сорри за нубство но может быть кто-нибудь знает как сделать так чтобы передавалась передача управляющему окну. Удалять и заново создавать окно не вариант так как загружаются очень большие 3D данные.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 3:39