- 博客主頁:Duck Bro 博客主頁
- 系列專欄:Qt 專欄
- 關注博主,后期持續更新系列文章
- 如果有錯誤感謝請大家批評指出,及時修改
- 感謝大家點贊👍收藏?評論?
Qt窗口 | 工具欄 | QToolBar的使用及說明
文章編號:Qt 學習筆記 / 48
文章目錄
- Qt窗口 | 工具欄 | QToolBar的使用及說明
- 一、工具欄
- 1. 什么是工具欄
- 二、QToolBar介紹
- 1. 簡介
- 2. 常用屬性
- 3. 常用方法
- 三、代碼創建工具欄
- 1. 創建工具欄
- 2. 添加快捷項
- 3. 設置工具欄圖標
- 4. 設置提示信息(toolTip)
- 5. 設置工具欄初始位置
- 6. 設置工具欄停放的邊緣
- 7. 設置工具欄的浮動
- 8. 設置工具欄的移動
- 9. 文件相關代碼查看
一、工具欄
1. 什么是工具欄
工具欄是一種位于軟件或應用程序界面上方的水平欄,通常包含一系列常用工具和命令按鈕,用于快速訪問和執行常用功能。
工具欄通常通過圖標、文本或圖標加文本的形式展示工具和命令,用戶可以通過單擊這些按鈕來執行相應的操作,從而提高工作效率。
工具欄可以根據用戶的需求進行自定義,或者根據軟件的功能進行預設,以滿足不同用戶的操作習慣和工作需求。常見的工具欄包括格式工具欄、編輯工具欄、插入工具欄、繪圖工具欄等。
二、QToolBar介紹
1. 簡介
QToolBar是Qt框架中的一個控件,用于在工具欄中顯示一組操作按鈕和其他控件。它提供了一種方便的方式來組織和管理應用程序中的工具和操作。
QToolBar可以包含各種類型的控件,如按鈕、下拉菜單、文本框等。可以通過添加和刪除控件來自定義工具欄的內容。
QToolBar還提供了許多內置的功能,如可拖動的工具欄、可停靠的工具欄,以及工具欄按鈕的自定義樣式等。
使用QToolBar,開發人員可以輕松地創建一個功能豐富且易于使用的工具欄,以增強應用程序的用戶體驗和功能性。
2. 常用屬性
屬性 | 說明 |
---|---|
movable | 設置工具欄是否可拖動,默認為true。 |
orientation | 設置工具欄的方向,可以是Qt::Horizontal(水平方向)或Qt::Vertical |
iconSize | 設置工具欄上圖標的大小。 |
toolButtonStyle | 設置工具欄按鈕的樣式,可以是 Qt::ToolButtonIconOnly(僅圖標) Qt::ToolButtonTextOnly(僅文本) Qt::ToolButtonIconText(圖標和文本) |
3. 常用方法
方法 | 說明 |
---|---|
addAction(action) | 在工具欄上添加一個操作按鈕。 |
addSeparator() | 在工具欄上添加一個分隔符。 |
addWidget(widget) | 在工具欄上添加一個自定義控件。 |
clear() | 清空工具欄上的所有控件。 |
insertWidget(before, widget) | 在指定控件之前插入一個自定義控件。 |
removeAction(action) | 從工具欄中移除一個操作按鈕。 |
toggleViewAction() | 返回一個切換工具欄顯示與隱藏的操作按鈕。 |
setFloatable(floatable) | 設置工具欄是否可浮動。 |
setToolButtonStyle(style) | 設置工具欄按鈕的樣式。 |
setIconSize(size) | 設置工具欄上圖標的大小。 |
三、代碼創建工具欄
1. 創建工具欄
創建工具欄,并使用addToolBar() 函數添加到窗口中
調? QMainWindow類 的 addToolBar() 函數來創建?具欄,每增加?個?具欄都需要調??次該函
數。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QToolBar>
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QToolBar * toolbar = new QToolBar();this->addToolBar(toolbar);
}MainWindow::~MainWindow()
{delete ui;
}
此時運行結果
2. 添加快捷項
在工具欄中添加快捷項等同于菜單項QAction()
,并使用addAction()函數添加到工具欄中
//創建快捷項等同于菜單項
QAction * action1 = new QAction("新建");
QAction * action2 = new QAction("保存");//添加到工具欄中
toolbar->addAction(action1);
toolbar->addAction(action2);
此時運行結果
3. 設置工具欄圖標
在阿里巴巴矢量圖標庫中進行查看合適的圖標,如下圖
將圖片加入到qrc文件中,詳細步驟參考文章:qrc文件機制
將圖片添加到快捷項中
//創建快捷項等同于菜單項
QAction * action1 = new QAction("新建");
//使用setIcon添加圖標
action1->setIcon(QIcon(":/new.png"));
QAction * action2 = new QAction("保存");
action2->setIcon(QIcon(":/save.png"));
此時運行結果
4. 設置提示信息(toolTip)
在上述操作中,將快捷項設置圖標后,本來的文字沒有消失,默認變成toolTip的形式存在
也可以通過setToolTip的方法改變提示信息
QAction * action2 = new QAction("保存");
action2->setIcon(QIcon(":/save.png"));
action2->setToolTip("這是保存按鈕");
運行結果
5. 設置工具欄初始位置
在MainWindow 提供的addToolBar()中設置工具欄的默認停靠位置
在創建?具欄的同時,也可以設置?具欄的位置,
其默認位置是在窗?的最上?,其中可以設置的位置包括:
? Qt::LeftToolBarArea 停靠在左側
? Qt::RightToolBarArea 停靠在右側
? Qt::TopToolBarArea 停靠在頂部
? Qt::BottomToolBarArea 停靠在底部
? Qt::AllToolBarAreas 以上四個位置都可停靠
//添加工具欄
QToolBar * toolbar = new QToolBar();
//創建工具欄的同時,指定工具欄在左側顯示
this->addToolBar(Qt::LeftToolBarArea ,toolbar);
運行結果
6. 設置工具欄停放的邊緣
使用 QToolBar類 提供的 setAllowedAreas()函數 設置停靠位置。如下:
其中可以設置的位置包括:
? Qt::LeftToolBarArea 停靠在左側
? Qt::RightToolBarArea 停靠在右側
? Qt::TopToolBarArea 停靠在頂部
? Qt::BottomToolBarArea 停靠在底部
? Qt::AllToolBarAreas 以上四個位置都可停靠
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QToolBar>
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QToolBar * toolbar1 = new QToolBar();QToolBar * toolbar2 = new QToolBar();this->addToolBar(toolbar1);this->addToolBar(toolbar2);QAction* action1 = new QAction("文件");QAction* action2 = new QAction("構建");toolbar1->addAction(action1);toolbar2->addAction(action2);//只運行左側停靠toolbar1->setAllowedAreas(Qt::LeftToolBarArea);//運行在左右停靠toolbar2->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
}MainWindow::~MainWindow()
{delete ui;
}
運行結果
7. 設置工具欄的浮動
?具欄的浮動屬性可以通過 QToolBar類 提供的 setFloatable()函數 來設置。
參數:
true:浮動
false:不浮動
//允許工具欄浮動
toolbar1->setFloatable(true);
//不允許工具欄浮動
toolbar1->setFloatable(false);
8. 設置工具欄的移動
設置?具欄的移動屬性可以通過 QToolBar類 提供的 setMovable()函數 來設置。
參數:
true:移動
false:不移動
//允許工具欄移動
toolbar2->setMovable(true);
//不允許工具欄移動
toolbar2->setMovable(false);
9. 文件相關代碼查看
相關代碼請查看DuckBro的Gitee倉庫