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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Необходимо склеить две формы  (Прочитано 3009 раз)
merke
Гость
« : Декабрь 21, 2010, 13:48 »

Всем привет!

Как можно склеить две формы как например в winamp?

Я это делаю следующим "дедушкиным" способом:

Код:
  dlg->show();
  dlg->resize(width(), height());;
  dlg->move(pos().x()+width(), pos().y());

*dlg это наследник класса QDialog

Далее делаю вот так:

Код:
void MainWindow::moveEvent(QMoveEvent *event)
{
    dlg->move(pos().x()+width(), pos().y());
}

Работать то работает, только вот всё происходит так долго. Перемещение второй формы происходит примерно за 1 секунду, что смотрится очень грубо. Получается как то не ассихронно)

Может есть какое то другое решение?
Записан
BRE
Гость
« Ответ #1 : Декабрь 21, 2010, 13:56 »

Положить две эти формы на один общий виджет?
Записан
merke
Гость
« Ответ #2 : Декабрь 21, 2010, 13:58 »

О здорово! Я что то не подумал о таком!

А можно примерный алгоритм?
Записан
BRE
Гость
« Ответ #3 : Декабрь 21, 2010, 14:02 »

О здорово! Я что то не подумал о таком!

А можно примерный алгоритм?
Создать общий виджет.
Добавить горизонтальный layout.
И поместить в него две формы.
Записан
merke
Гость
« Ответ #4 : Декабрь 21, 2010, 14:11 »

Спасибо, выполнил описанные выше шаги.

Диалоги добавляются но уже без заголовков окон, просто как виджеты(

Делаю так   

Код:
    ui->horizontalLayout->addWidget(dlg);
    ui->horizontalLayout->addWidget(dlg_2);
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Декабрь 21, 2010, 16:18 »

Цитировать
Получается как то не ассихронно)
Получается как раз асинхронно.
На Х-ах, если используете WM синхронно и не получится.
Хотите быстро - отказывайтесь от услуг WM. Но тогда получите другие заморочки.
Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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