QMenuBar и QAction в Windows Mobile |
Здравствуйте, гость ( Вход | Регистрация )
QMenuBar и QAction в Windows Mobile |
pluzhnikvictor |
7.9.2009, 13:09
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 7.9.2009 Пользователь №: 1060 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добрый день. Проблема заключается в том, что в MenuBar меню отображается справа-внизу с надписью "Menu", а хотелось бы написать русскими буквами и отобразить панель ToolBar здесь же, как это можно сделать при помощи MFC (чтобы оставить на экране больше полезного места).
Т.е. в нижней части экрана хотелось бы видеть (слева-направо) : Меню | toolbar(кнопки) | значок виртуальной клавиатуры. Решал кто-нибудь подобную задачу? |
|
|
Litkevich Yuriy |
7.9.2009, 16:56
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
ничего не понял.
|
|
|
pluzhnikvictor |
7.9.2009, 17:51
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 7.9.2009 Пользователь №: 1060 Спасибо сказали: 0 раз(а) Репутация: 0 |
Еще раз. ОС - Windows Mobile 5.0 (русская версия). QT - 4.5.2. IDE - Visual Studio 2008.
1. Если я создаю окно на основе QMainWindow и создаю меню для этого окна, то оно (меню) появляется внизу экрана справа с текстом "Menu". Текст поменять не удается. 2. Если я создаю ToolBar для главного окна, он появляется вверху экрана, а хотелось бы его поместить там же, где и меню, т.е. внизу экрана. Все это нужно для того, чтобы сделать интерфейс, похожий на тот, который получается при построении приложения для Windows Mobile с помощью MFC и таким образом уместить Menu и Toolbar в одной строке внизу экрана. Я пересмотрел все примеры по QT, но ничего похожего не нашел. Можно, конечно, и ручками меню и toolbar рисовать, но думаю, что должно быть простое решение. |
|
|
Litkevich Yuriy |
7.9.2009, 18:16
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
1) приведи код создания меню
|
|
|
MoPDoBoPoT |
7.9.2009, 22:34
Сообщение
#5
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
Могу предложить попробовать:
1. Создать объект QToolBar 2. Задать ему расположение setAllowedAreas(Qt::BottomToolBarArea); 3. Добавить в него QMenuBar(или QMenu, смотря что надо) методом addWidget(QWidget *widget); 4. Добавить разделитель addSeparator(); 5. Добавить необходимые QAction, добавить разделитель, добавить значок виртуальной клавиатуры --- 6. Если элементы в QToolBar'е будут располагаться справа налево, то воспользоваться методом setLayoutDirection(Qt::LeftToRight) 7. Насчет "Текст поменять не удается." - странно как-то. Хотя под мобилки не писал. |
|
|
pluzhnikvictor |
8.9.2009, 8:27
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 7.9.2009 Пользователь №: 1060 Спасибо сказали: 0 раз(а) Репутация: 0 |
Могу предложить попробовать: 1. Создать объект QToolBar 2. Задать ему расположение setAllowedAreas(Qt::BottomToolBarArea); 3. Добавить в него QMenuBar(или QMenu, смотря что надо) методом addWidget(QWidget *widget); 4. Добавить разделитель addSeparator(); 5. Добавить необходимые QAction, добавить разделитель, добавить значок виртуальной клавиатуры --- 6. Если элементы в QToolBar'е будут располагаться справа налево, то воспользоваться методом setLayoutDirection(Qt::LeftToRight) 7. Насчет "Текст поменять не удается." - странно как-то. Хотя под мобилки не писал. Да, такой вариант подходит за единственным исключением: для Windows Mobile setAllowedAreas(Qt::BottomToolBarArea) для ToolBar не размещает его внизу. Нужно после создания ToolBar'а вызвать addToolBar(Qt::BottomToolBarArea, ToolBar). Примерно так: CODE void QMainWindow::createToolbar() { QMenu *Menu = new QMenu(tr("&File"), this); Menu->addAction(openAct); Menu->addSeparator(); Menu->addAction(exitAct); menuBar()->addMenu(Menu); ToolBar = addToolBar(tr("Edit")); ToolBar->addWidget(menuBar()); ToolBar->addSeparator(); ToolBar->addAction(openAct); ToolBar->addSeparator(); ToolBar->addAction(exitAct); //ToolBar->setAllowedAreas(Qt::BottomToolBarArea); // Такой вариант ничего не дает addToolBar(Qt::BottomToolBarArea, ToolBar); // А вот этот - изменяет расположение ToolBar, но не добавляет его } Спасибо за помощь. |
|
|
MoPDoBoPoT |
8.9.2009, 11:39
Сообщение
#7
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
Рад помочь.
А почему бы тогда сразу не сделать так?
|
|
|
pluzhnikvictor |
8.9.2009, 14:39
Сообщение
#8
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 7.9.2009 Пользователь №: 1060 Спасибо сказали: 0 раз(а) Репутация: 0 |
Такого метода нет.
Только: void addToolBar ( Qt::ToolBarArea area, QToolBar * toolbar ) т.е. расположение можно задать только для уже существующего ToolBar'а. |
|
|
MoPDoBoPoT |
8.9.2009, 14:45
Сообщение
#9
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
Ага, не туда посмотрел (:
|
|
|
Текстовая версия | Сейчас: 19.12.2024, 2:08 |