Russian Qt Forum

Qt => Общие вопросы => Тема начата: Mityai от Ноябрь 18, 2009, 17:04



Название: Как связать 2 окна QDockWidget?
Отправлено: Mityai от Ноябрь 18, 2009, 17:04
Здравствуйте. У меня в программе создается дополнительный поток "thread_flying", в котором я создаю 2 дополнительных QDockWidget окна "Flying_Window" и "Info_Window". Хотелось бы, чтобы при нажатии кнопки в одном из окон данные из него передавались бы в другое окно, лучше с сохранением данных непосредствено в потоке и последующей передачей в другое окно. Правильно ли я понимаю, что для таких целей необходимо использовать метод связи по SLOT и SIGNAL, и если да, то как его реализовать? Буду благодарен за любой совет, а если данная проблема решена на форуме, подскажите, пожалуйста, ссылку! Спасибо.


Название: Re: Как связать 2 окна QDockWidget?
Отправлено: lit-uriy от Ноябрь 18, 2009, 17:42
>>дополнительный поток "thread_flying", в котором я создаю 2 дополнительных QDockWidget окна
Виджеты можно создавать только в главном потоке!


Название: Re: Как связать 2 окна QDockWidget?
Отправлено: Mityai от Ноябрь 18, 2009, 18:44
>>Виджеты можно создавать только в главном потоке!

Подождите, Юрий. Что значит только в главном окне? Я читал документацию, и там вполне четко написано, что в отличие от QT3 в 4-ой версии такое задание виджетов создает новые окна, что у меня и происходит, причем все корректно работает.


Название: Re: Как связать 2 окна QDockWidget?
Отправлено: MoPDoBoPoT от Ноябрь 18, 2009, 18:57
>>Виджеты можно создавать только в главном потоке!

Подождите, Юрий. Что значит только в главном окне?
Главный поток, его еще называют GUI-поток. Прочитай два последних абзаца в разделе: ссылка (http://doc.crossplatform.ru/qt/4.5.0/threads.html#qobject-reentrancy)


Название: Re: Как связать 2 окна QDockWidget?
Отправлено: Mityai от Ноябрь 18, 2009, 19:15
>>Виджеты можно создавать только в главном потоке!

Подождите, Юрий. Что значит только в главном окне?
Главный поток, его еще называют GUI-поток. Прочитай два последних абзаца в разделе: ссылка (http://doc.crossplatform.ru/qt/4.5.0/threads.html#qobject-reentrancy)

Спасибо, я просто некорректно понял предыдущий пост. О создании виджетов в главном потоке теперь тоже все понятно, благодарю за ссылку!


Название: Re: Как связать 2 окна QDockWidget?
Отправлено: andrey2048 от Июнь 09, 2010, 21:52

QMainWidget::tabifyDockWidget(dock, dock1);

 ;D ;D ;D ;D ;D



Название: Re: Как связать 2 окна QDockWidget?
Отправлено: Mityai от Июнь 09, 2010, 21:59
QMainWidget::tabifyDockWidget(dock, dock1);

 ;D ;D ;D ;D ;D

Цитировать
void QMainWindow::tabifyDockWidget ( QDockWidget * first, QDockWidget * second )

Moves second dock widget on top of first dock widget, creating a tabbed docked area in the main window.

Что-то мне подсказывает, что с темой поста это не шибко связано ;D