Russian Qt Forum
Ноябрь 22, 2024, 12:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как определить что виджет плагина закрылся.  (Прочитано 5883 раз)
heiheshang
Гость
« : Январь 14, 2010, 15:39 »

Написал свой плагин для редактирования текста, теперь мне при закрытии виджета надо текст записать, а вот определить что виджет закрывается не могу. При нажатии на кнопку закрытия генерится событии hideEvent, но это событие генерится каждый раз когда виджет закрывается другим. Как определить что виджет закрывается ?
Записан
ilot
Гость
« Ответ #1 : Январь 14, 2010, 16:22 »

А что за виджет (от какого класса наследован)? и чем он закрывается?
Записан
heiheshang
Гость
« Ответ #2 : Январь 14, 2010, 16:37 »

А что за виджет (от какого класса наследован)? и чем он закрывается?
От QMainWindow наследован.
Записан
BlackTass
Гость
« Ответ #3 : Январь 14, 2010, 16:44 »

closeEvent, не?
Записан
heiheshang
Гость
« Ответ #4 : Январь 14, 2010, 16:46 »

closeEvent, не?
Не, не катит.
Записан
ilot
Гость
« Ответ #5 : Январь 14, 2010, 16:58 »

Тогда не очень понятно, что собственно вы хотите получить, потому как судя по вашему вопросу и описанию к QCloseEvent, метод void QWidget::closeEvent ( QCloseEvent * event ) как раз то, что надо:
Цитировать
Close events are sent to widgets that the user wants to close, usually by choosing "Close" from the window menu, or by clicking the X title bar button. They are also sent when you call QWidget::close() to close a widget programmatically.
может просто вы его как то не правильно использовали?

P.S. или вопрос яснее формулируйте...
« Последнее редактирование: Январь 14, 2010, 16:59 от ilot » Записан
heiheshang
Гость
« Ответ #6 : Январь 14, 2010, 18:10 »

Тогда не очень понятно, что собственно вы хотите получить, потому как судя по вашему вопросу и описанию к QCloseEvent, метод void QWidget::closeEvent ( QCloseEvent * event ) как раз то, что надо:
Цитировать
Close events are sent to widgets that the user wants to close, usually by choosing "Close" from the window menu, or by clicking the X title bar button. They are also sent when you call QWidget::close() to close a widget programmatically.
может просто вы его как то не правильно использовали?

P.S. или вопрос яснее формулируйте...
Вы просто невнимательно читали. Я же говорю что генерится событие не closeEvent а hideEvent. Причем это событие генерируется когда текущий виджет становится неактивным. Всем виджетам в стопке рассылается событие hideEvent. Нажатие на крестик в верхнем правом углу окна виджета не приводит к закрытию виджета плагина, а всего лишь его скрывает. Я так понял, если кто лучше разобрался в работе плагинов qtcreator поправте меня.
Записан
heiheshang
Гость
« Ответ #7 : Январь 17, 2010, 06:02 »

Отвечу сам себе.
У класса EditorManager есть событие editorsClosed(QList<Core::IEditor*>)
Код:
Core::IEditor* editor = manager->openEditorWithContents("Field Editor", &cfgName,"");
connect(manager,SIGNAL(editorsClosed(QList<Core::IEditor*>)),editor->widget(),SLOT(updateMD(QList<Core::IEditor*>)));
Тогда не очень понятно, что собственно вы хотите получить, потому как судя по вашему вопросу и описанию к QCloseEvent, метод void QWidget::closeEvent ( QCloseEvent * event ) как раз то, что надо:
Цитировать
Close events are sent to widgets that the user wants to close, usually by choosing "Close" from the window menu, or by clicking the X title bar button. They are also sent when you call QWidget::close() to close a widget programmatically.
может просто вы его как то не правильно использовали?

P.S. или вопрос яснее формулируйте...
Вы просто невнимательно читали. Я же говорю что генерится событие не closeEvent а hideEvent. Причем это событие генерируется когда текущий виджет становится неактивным. Всем виджетам в стопке рассылается событие hideEvent. Нажатие на крестик в верхнем правом углу окна виджета не приводит к закрытию виджета плагина, а всего лишь его скрывает. Я так понял, если кто лучше разобрался в работе плагинов qtcreator поправте меня.
Записан
SABROG
Гость
« Ответ #8 : Январь 20, 2010, 22:42 »

А как ваш виджет-плагин будет работать в QtDesigner'e и интеграторах для Eclipse и MSVC? Там ведь нет этого события.
Записан
crackedmind
Гость
« Ответ #9 : Январь 21, 2010, 09:58 »

Дак это ж плагин редактирования для креатора. Причем тут дизайнер?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 21.