QT入门——QmainWindow
·
QT入门——QmainWindow
菜单栏(只能有一个)
- 需要包含头文件QMenuBar
- 菜单栏创建——QMenuBar* bar=menuBar();
- 将菜单栏放入窗口——setMenuBar(bar);
菜单
- 菜单需要在菜单栏的基础上操作
- 创建菜单——QMenu* filemenu=bar->addMenu(“文件”);
- 单调用bar->addMenu(“文件”);就可以在菜单栏里面添加菜单。
- QMenu* filemenu设置接收返回值方便后续操作
菜单项
- 菜单项是在菜单的基础上操作的
- 创建菜单项—— QAction* newAction=filemenu->addAction(“新建”);
- 添加分割线——filemenu->addSeparator();
工具栏(可以有多个)
- 需要包含头文件QToolBar
- 创建工具栏——QToolBar* toolBar=new QToolBar(this);
- 将工具栏添加到窗口——addToolBar(Qt::LeftToolBarArea,toolBar);
- 第一个参数代表工具栏可以放置的位置
- Qt::开头的是QT里面的枚举类型
- 设置只运行左右停靠——toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
- 两个枚举类型通过|符号来连接,表示允许左侧或右侧停靠
- 设置浮动——toolBar->setFloatable(false);
- 设置移动(总开关)——toolBar->setMovable(false);
- 这里设置为false,前面设置的浮动,左右停靠全部失效,不可以移动了
- 设置工具栏中的内容——toolBar->addAction(newAction);
- 添加分割线——toolBar->addSeparator();
- 工具栏中添加控件(如按钮控件)——toolBar->addWidget(btn);
- btn是一个按钮控件 QPushButton* btn=new QPushButton(“aaa”,this);
状态栏(最多有一个)
- 需要包含头文件QStatusBar
- 创建状态栏——QStatusBar* stBar=new QStatusBar();
- 设置到窗口——setStatusBar(stBar);
标签控件
- 需要包含头文件QLabel
- 创建标签控件QLabel* label=new QLabel(“提示信息”,this);
- 把标签控件放入状态栏——stBar->addWidget(label);
- 放到状态栏右侧——stBar->addPermanentWidget(label2);
铆接部件——浮动窗口(可以有多个)
- 创建铆接部件——QDockWidget* dockWidget=new QDockWidget(“浮动”,this);
- 添加到当前窗口——addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
- 同时设置了停靠位置
- 设置停靠区域(上下停靠)——dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
中心区域(只能有一个)
- 创建中心文本编辑部件——QTextEdit* edit=new QTextEdit(this);
- 将文本编辑部件设置为中心区域——setCentralWidget(edit);
问题总结
- 为什么创建各个栏的时候有的部件需要指定父容器this,有的不需要?
- 如果只能有一个的栏部件,可以在创建时不用指定this,在通过set添加到当前窗口的时候会自动绑定,而允许有多个的部件在创建时需要绑定this(当前窗口)为父容器。
- 设置到当前窗口有的用set有的用add?
- 只能有一个的部件,添加到当前窗口用set,能有多个的部件,添加到当前窗口用add。
结果展示

更多推荐



所有评论(0)