Qt桌面应用开发 第三天(QMainWindow)
目录
1.QMainWindow
1.1菜单栏
为用户提供主窗口程序的类。一个主窗口最多只有一个菜单栏,位于主窗口顶部,标题栏下面。
创建步骤:
- 创建菜单栏(QMenuBar)
- 将菜单栏设置到窗口中
- 菜单栏中添加菜单(QMenu)
- 菜单中添加菜单项(QAction)
- 菜单项(QAction)中可以加菜单(QMenu)
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//创建菜单栏,只能有一个
QMenuBar* bar=menuBar();
//将菜单栏设置到窗口中
this->setMenuBar(bar);
//添加菜单
QMenu* file=bar->addMenu("文件");
QMenu* edit=bar->addMenu("编辑");
//添加菜单项
QAction* newBuild=file->addAction("新建");
file->addSeparator();
QAction* open=file->addAction("打开");
QMenu* subMenu=new QMenu;
subMenu->addAction("子菜单1");
subMenu->addAction("子菜单2");
newBuild->setMenu(subMenu);
}
1.2工具栏
主窗口的工具栏可以有多个。
创建步骤:
- 创建工具栏(QToolBar)
- 将工具栏添加到窗口中
- 设置允许停靠的区域
- 设置是否可以浮动/移动
- 添加工具按钮(addAction)
//创建工具栏(QToolBar)
QToolBar* toolBar=new QToolBar;
//将工具栏添加到窗口中
this->addToolBar(Qt::LeftToolBarArea,toolBar);
//设置允许停靠的区域
toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
//设置是否可以浮动
toolBar->setFloatable(false);
toolBar->setMovable(false);
//添加工具按钮
toolBar->addAction(newBuild);
toolBar->addSeparator();
toolBar->addAction("工具栏");
1.3状态栏
主窗口的状态栏最多只能有一个。
状态栏中添加文本:
创建步骤:
- 创建状态栏
- 将状态栏设置到窗口中
- 创建文本标签控件
- 将文本标签控件添加到状态栏中
//创建状态栏
QStatusBar* Bar=statusBar();
//将状态栏设置到窗口中
this->setStatusBar(Bar);
//创建文本标签控件
QLabel* lable1=new QLabel("左侧信息1",this);
QLabel* lable2=new QLabel("右侧信息1",this);
QLabel* lable3=new QLabel("左侧信息2",this);
//自左向右设置
Bar->addWidget(lable1);
//自右向左设置
Bar->addPermanentWidget(lable2);
//插入设置
Bar->insertWidget(0,lable3);
1.4铆接部件和核心部件
1.4.1铆接部件
主窗口的铆接部件也是浮动窗口,可以有多个。
铆接部件可以设置停靠区域:
注意:铆接部件的停靠依赖于核心部件
创建步骤:
- 创建铆接部件
- 将铆接部件添加到窗口中
- 设置停靠
1.4.2核心部件
除了菜单栏,工具栏,状态栏,铆接部件,中心显示的都可以作为核心部件,核心部件只有一个,但是可以由多个小控件组成。
//创建铆接部件
QDockWidget* dock=new QDockWidget("浮动窗口",this);
//将铆接部件添加到窗口中
addDockWidget(Qt::BottomDockWidgetArea,dock);
//设置停靠
dock->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
QTextEdit* edit=new QTextEdit(this);
setCentralWidget(edit);
原文地址:https://blog.csdn.net/m0_53349772/article/details/143610935
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!