4

使用 Meego Touch 框架时,标准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创建一个外观相似的窗口?

4

2 回答 2

1

我将如何实现这一点,可能是一个固定高度、可变宽度的 QHBoxLayout,并为那些需要它的索引提供拉伸因子。然后我将使用 QPushButton 和 QCombobBox 作为小部件,并使用自定义样式表和图标完成它们。然后我会将它们包装在一个整洁的小自定义小部件中,我可以在我的主视图类中重用它。

主视图应该是一个窗口类,它将导航栏小部件保存在 QVBoxLayout 的顶部,以及它下面的实际内容。底部索引将具有拉伸因子,因此上部索引将始终位于顶部。

我不太记得 Meego 手机 UX 应该如何工作,但这就是我创建类似导航栏的方式。

于 2011-02-23T06:45:21.013 回答
1

我会选择 QMainWindow 类,因为这个类已经有菜单、工具栏和状态栏。
但是,您应该自己处理方向切换(我看到纵向模式下的工具栏位于底部,而横向模式下位于顶部)。
这可以通过设置正确的 Qt::ToolbarArea 值来完成。

可以使用 Qt 样式表设置按钮和窗口本身的样式。

于 2011-03-01T17:52:33.007 回答