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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Добавить панель инструментов в QDialog  (Прочитано 6478 раз)
folibis
Гость
« : Июнь 30, 2010, 02:29 »

Собственно, проблема - мне нужно добавить QToolBar в QDialog. В редакторе форм это сделать не получается.
Так же не могу добавить QStatusBar.
Если делать еще одно окно QMainWindow то его нельзя сделать модальным.
Можно конечно на диалоговую форму добавить фрейм и на него кнопки но все это выглядит совсем не так как тулбар.
Записан
asvil
Гость
« Ответ #1 : Июнь 30, 2010, 07:20 »

QDialog::setContentsMargins(0, QToolBar::sizeHint().height,  0, 0);

Переопределить QDialog::resizeEvent(event)
QToolBar::setGeometry(0, 0, QDialog::width(), sizeHint().height);
Записан
folibis
Гость
« Ответ #2 : Июнь 30, 2010, 08:07 »

А все, решил.
Добавил на форму QVBoxLayout, сверху QToolBar, снизу QFrame. в тулбар уже добавил экшенов.
Странно что разработчики не дали возможность сделать это штатными средствами редактора форм, как это сделано, например, для QMainWindow.
Записан
asvil
Гость
« Ответ #3 : Июнь 30, 2010, 08:15 »

Также можно было использовать и QLayout::setMenuBar(), если toolbar должен находиться только сверху.
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #4 : Июнь 30, 2010, 09:16 »

Положи QMainWindow на свой диалог и сними ему флажок Qt::Window.

Код:
wnd_ = new QMainWindow(this);
wnd_->setWindowFlags(wnd_->windowFlags() & !Qt::Window);

Таким способом получишь функционал QMainWindow в своем диалоге. Более того, можно многократно вкладывать QMainWindow один в другой )
Записан

Гугль в помощь
vdann
Гость
« Ответ #5 : Июль 07, 2010, 16:18 »

Положи QMainWindow на свой диалог и сними ему флажок Qt::Window.

Код:
wnd_ = new QMainWindow(this);
wnd_->setWindowFlags(wnd_->windowFlags() & !Qt::Window);

Таким способом получишь функционал QMainWindow в своем диалоге. Более того, можно многократно вкладывать QMainWindow один в другой )

ошибочка:
Код:
wnd_->setWindowFlags(wnd_->windowFlags() & ~Qt::Window);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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