马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
2.工具栏
利用QToolBar表现工具栏对象,一个窗口可以有多个工具栏,也可以没有,工具栏往往也可以手动移动位置
①设置工具栏
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include<QToolBar>
- #include<QDebug>
- MainWindow::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"
- #include<QToolBar>
- #include<QDebug>
- MainWindow::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
eftToolBarArea:停靠在左侧
- Qt:RightToolBarArea:停靠在右侧
- Qt:TopToolBarArea:停靠在顶部
- Qt:BottomToolBarArea:停靠在底部
- Qt::AllToolBarAreas:以上四个位置都可停靠
还可以利用QToolBar类提供的setAllowedAreas()函数设置停靠位置。
- 只答应在左侧停靠:toolBar1->setAllowedAreas(Qt
eftToolBarArea);
- 只答应在右侧停靠:toolBar2->setAllowedAreas(Qt:RightToolBarArea);
设置工具栏的移动属性可以通过QToolBar类提供的setMovable()函数来设置。
- 设置不答应浮动:toolBar2->setFloatable(false);
- 设置不答应移动:toolBar2->setMovable(false);
阐明:
在创建工具栏的同时指定其停靠的位置,指的是程序运行时工具栏默认地点的位置;而利用setAllowedAreas()函数设置停靠位置,指的是工具栏答应其所能停靠的位置。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |