如何做推广网站,分类信息导航网站模板,免费门户网站模板下载,谷歌俄语网站2.工具栏
使用QToolBar表示工具栏对象#xff0c;一个窗口可以有多个工具栏#xff0c;也可以没有#xff0c;工具栏往往也可以手动移动位置
①设置工具栏 #include mainwindow.h
#include ui_mainwindow.h
#includeQToolBar
#include一个窗口可以有多个工具栏也可以没有工具栏往往也可以手动移动位置
①设置工具栏 #include mainwindow.h
#include ui_mainwindow.h
#includeQToolBar
#includeQDebugMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui-setupUi(this);QToolBar* toolbar new QToolBar();this-addToolBar(toolbar);QAction* action1 new QAction(保存);action1-setIcon(QIcon(:/1.jpg));QAction* action2 new QAction(打开);action2-setIcon(QIcon(:/2.jpg));toolbar-addAction(action1);toolbar-addAction(action2);connect(action1,QAction::triggered,this,MainWindow::handle);connect(action2,QAction::triggered,this,MainWindow::close);}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::handle()
{qDebug()触发保存;
}void MainWindow::close()
{qDebug()触发打开;
}
②工具栏中的action也能在菜单栏中显示出来 #include mainwindow.h
#include ui_mainwindow.h
#includeQToolBar
#includeQDebugMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui-setupUi(this);//创建菜单栏QMenuBar* menubar this-menuBar();this-setMenuBar(menubar);//创建菜单QMenu* menu new QMenu(文件);menubar-addMenu(menu);//创建工具栏QToolBar* toolbar new QToolBar();this-addToolBar(toolbar);QAction* action1 new QAction(保存);action1-setToolTip(点击这里保存文件);action1-setIcon(QIcon(:/1.jpg));QAction* action2 new QAction(打开);action2-setIcon(QIcon(:/2.jpg));//菜单项设置到菜单中menu-addAction(action1);menu-addAction(action2);//菜单项设置到工具栏中toolbar-addAction(action1);toolbar-addAction(action2);connect(action1,QAction::triggered,this,MainWindow::handle);connect(action2,QAction::triggered,this,MainWindow::close);}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::handle()
{qDebug()触发保存;
}void MainWindow::close()
{qDebug()触发打开;
}
如果一个QAction既是QMenu的子元素又是QToolBar的子元素释放的时候是否会重复delete?
不会qt的对象树机制处理好了这样的释放
③设置多个工具栏 工具栏允许停靠的区域由QToolBar类提供的allowAreas()函数决定其中可以设置的位置包括
Qt:LeftToolBarArea停靠在左侧Qt:RightToolBarArea停靠在右侧Qt:TopToolBarArea停靠在顶部Qt:BottomToolBarArea停靠在底部Qt::AllToolBarAreas以上四个位置都可停靠
还可以使用QToolBar类提供的setAllowedAreas()函数设置停靠位置。
只允许在左侧停靠toolBar1-setAllowedAreas(Qt:LeftToolBarArea);
只允许在右侧停靠toolBar2-setAllowedAreas(Qt:RightToolBarArea);
设置工具栏的移动属性可以通过QToolBar类提供的setMovable()函数来设置。
设置不允许浮动toolBar2-setFloatable(false);设置不允许移动toolBar2-setMovable(false);
说明
在创建工具栏的同时指定其停靠的位置指的是程序运行时工具栏默认所在的位置而使用setAllowedAreas()函数设置停靠位置指的是工具栏允许其所能停靠的位置。