![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Гость_nazavrik_* |
![]()
Сообщение
#1
|
Гости ![]() |
Добрый день!
Продолжаю прорисовывать дизайн сапера. Возникла проблема с добавлением меню: ![]() Сначала создаю меню так: CODE QMenuBar *menuBar = new QMenuBar( this); QMenu *FirstMenu = new QMenu( menuBar); FirstMenu->setTitle( tr( "First")); FirstMenu->addMenu( "menu"); menuBar->addMenu( FirstMenu); и т.д. После этого с помощью QGridLayout группирую кнопки. Но кнопки налезают на меню. Как можно нормально отобразить? |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
у QWidget, нет предопределённого компоновщика для QMenuBar. А у QMainWindow есть специальный, встроенный, компоновщик.
По этому проще поменять базовый класс твоего окна на QMainWindow, добавить экземпляр QWidget в качестве центрального виджета, и уже на нём разместить все дочерние компоновщики/виджеты. Подробности смотри в описании QMainWindow, там приведена схема внутреннего компоновщика. Именно он отвечает, за то где будут размещены определённые виджеты. Например, добавляя панель меню (QMenuBar), ты не указываешь, где ему находится. Т.к. внутренний компоновщик QMainWindow знает сам куда помещать наследников конкретного класса. Ещё один вариант - создать вертикальный компоновщик, поместить панель меню в него, а затем поместить в него компоновщик по сетке. Тогда внешний компоновщик будет управлять размерами и положением панели меню |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 3.7.2025, 4:14 |