crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> 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  


Цитата(MoPDoBoPoT @ 7.9.2009, 23:34) *
Могу предложить попробовать:
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  


Рад помочь.
А почему бы тогда сразу не сделать так?
...
ToolBar = addToolBar(Qt::BottomToolBarArea, tr("Edit"));
ToolBar->addWidget(menuBar());
..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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  


Ага, не туда посмотрел (:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 8:46