Как добавить общую панель навигации в приложение Meego? - PullRequest
4 голосов
/ 20 февраля 2011

При использовании Meego Touch Framework к стандарту MApplicationWindow уже подключена общая панель навигации (с кнопками переключения, меню и закрытия).

Например, следующий код:

#include <MApplication>
#include <MApplicationWindow>

int main(int argc, char *argv[]){
    MApplication app(argc, argv);
    MApplicationWindow w;
    w.show();
    return app.exec();
}

Создает пустое окно с панелью меню, которая выглядит похожей на эту (например, кнопка переключателя, меню и кнопка закрытия вверху).

Однако, поскольку документы препятствуют использованию Touch Framework. Я хочу избегать его использования, поэтому как мне создать похожее окно, используя только стандартный API ?

Ответы [ 2 ]

1 голос
/ 01 марта 2011

Я бы просто пошел с классом QMainWindow, так как у этого класса уже есть меню, панели инструментов, строка состояния aso.
Однако вы должны позаботиться о переключении ориентации самостоятельно (я вижу, что панель инструментов в портретном режиме находится внизу, а в альбомном режиме - сверху).
Этого можно достичь, установив правильное значение Qt :: ToolbarArea.

Стиль кнопок и самого окна можно установить с помощью таблицы стилей Qt.

1 голос
/ 23 февраля 2011

Как бы я это реализовал, вероятно, будет фиксированная высота, переменная ширина QHBoxLayout с коэффициентом растяжения для тех индексов, которые в этом нуждаются.Затем я бы просто использовал QPushButton и QCombobBox для виджетов и завершил их с помощью собственной таблицы стилей и значков.Затем я обернул бы их внутри аккуратного маленького пользовательского виджета, который я мог бы повторно использовать в своем классе основного вида.

Основным видом должен быть класс окна, который будет содержать виджет панели навигации поверх QVBoxLayout, ифактическое содержание под ним.Нижний индекс будет иметь растягивающий фактор, так что верхний индекс всегда будет наверху.

Я не совсем помню, как должен вести себя UX на мобильном телефоне Meego, но я бы так и создалпохожая навигационная панель.

...