Меню. |
Здравствуйте, гость ( Вход | Регистрация )
Меню. |
Гость_nazavrik_* |
26.5.2010, 15:55
Сообщение
#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 |
26.5.2010, 16:05
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Гость_nazavrik_* |
26.5.2010, 16:17
Сообщение
#3
|
Гости |
После этого с помощью QGridLayout группирую кнопки. покажи весь код, того как ты работаешь с QGridLayoutВот:
Причина редактирования: используй тэг code вместо codebox, темболее, что кнопочка ближе
|
|
|
Litkevich Yuriy |
26.5.2010, 16:24
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
а основное окно приложения, наследник QMainWindow? А центральный виджет ему не поставил?
|
|
|
Гость_nazavrik_* |
26.5.2010, 16:56
Сообщение
#5
|
Гости |
а основное окно приложения, наследник QMainWindow? А центральный виджет ему не поставил? Нет, центральное окно не QMainWindow. У меня есть отдельно функционал игры и есть отдельно интерфейс. Класс, с помощью которого они соединяются, наследуется от Widget и имеет ссылку на игровое поле. Я так понимаю, что в этом случае QMainWindow как центральное окно никуда приделать не получится. |
|
|
Litkevich Yuriy |
26.5.2010, 17:23
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
у QWidget, нет предопределённого компоновщика для QMenuBar. А у QMainWindow есть специальный, встроенный, компоновщик.
По этому проще поменять базовый класс твоего окна на QMainWindow, добавить экземпляр QWidget в качестве центрального виджета, и уже на нём разместить все дочерние компоновщики/виджеты. Подробности смотри в описании QMainWindow, там приведена схема внутреннего компоновщика. Именно он отвечает, за то где будут размещены определённые виджеты. Например, добавляя панель меню (QMenuBar), ты не указываешь, где ему находится. Т.к. внутренний компоновщик QMainWindow знает сам куда помещать наследников конкретного класса. Ещё один вариант - создать вертикальный компоновщик, поместить панель меню в него, а затем поместить в него компоновщик по сетке. Тогда внешний компоновщик будет управлять размерами и положением панели меню |
|
|
MoPDoBoPoT |
26.5.2010, 19:04
Сообщение
#7
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
void QLayout::setMenuBar ( QWidget * widget )
|
|
|
Текстовая версия | Сейчас: 22.12.2024, 20:15 |