Как добавить общую панель навигации в приложение Meego?

При использовании 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 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам