目录
QMain的几个关键组成部分如图
MenuBar(菜单栏)
一个窗口只允许一个菜单栏,位于主窗口顶部、主窗口标题栏下面。
QMenuBar * mb=menuBar();
setMenuBar(mb);
mb->addMenu("文件");
mb->addMenu("编辑");
//addmenu的返回值为""中的内容,所以可以用一个变量接收他的返回值重复利用。
QMenu *filemenu=mb->addMenu("文件");
QMenu *editmenu=mb->addMenu("编辑");
//创建菜单项,同样用一个变量接受返回值。
QAction *addoperation=filemenu->addAction("新建");
QAction *openoperation=filemenu->addAction("打开");
Qt并没有专门的菜单项类,只是通过使用一个QAction类,抽象出公共的动作。
ToolBar(工具栏)
一个窗口允许多个工具栏。
QToolBar *tb= new QToolBar(this);
addToolBar(Qt::LeftToolBarArea,tb);
tb->addAction(addoperation);
tb->addSeparator(); //添加分割线
tb->addAction(openoperation);//用到了上面的返回值
QLabel *qlb=new QLabel("帮助");
tb->addWidget(qlb);//工具栏也可以添加控件
工具栏可移动,可以靠setAllowedAreas()设置位置
Qt::LeftToolBarArea 停靠在左侧
Qt::RightToolBarArea 停靠在右侧
Qt::TopToolBarArea 停靠在顶部
Qt::BottomToolBarArea 停靠在底部
Qt::AllToolBarAreas 以上四个位置都可停靠
工具栏可以浮动,用setFloatable()设置。
tb->setFloatable(true);//表示浮动,参数为布尔值
工具栏可以设置固定不可移动,用setMoveable(false)设置只能停靠在初始位置,不可移动。
StatusBar(状态栏)
一个窗口最多只能有一个状态栏。
QStatusBar *sb=new QStatusBar();
setStatusBar(sb);
QLabel *lb=new QLabel("你是一头猪");
sb->addWidget(lb);//从左侧设置lb标签
sb->addPermanentWidget(lb);//从右侧设置lb标签
DockWidget(铆接部件/浮动窗口)
dock有码头之意。一个窗口可以有多个停靠DockWidget。
QDockWidget *dw=new QDockWidget("停靠部件",this);
//第一个参数的位置是默认位置
addDockWidget(Qt::LeftDockWidgetArea,dw);
//这个位置设置是指默认位置拖动后允许停靠的位置
dw->setAllowedAreas(Qt::RightDockWidgetArea);
打开未拖动时,默认停靠在左侧
拖动后便不能放置在左侧
CentralWidget(中心部件)
一个窗口只能有一个中心部件,常见的中心部件为编辑框控件(QTextEdit)作为核心部件
QTextEdit *te=new QTextEdit();
setCentralWidget(te);