本文主要涉及QSizeGrip ,QStatusBar ,QToolBar
工具欄默認位於菜單欄下方,其上添加一個個action按鈕,用於執行動作
絕大多謝以前都涉及過,只列出
QToolBar(const QString & title, QWidget * parent = 0) QToolBar(QWidget * parent = 0) ~QToolBar() void addAction(QAction * action) QAction * addAction(const QString & text) QAction * addAction(const QIcon & icon, const QString & text) QAction * addAction(const QString & text, const QObject * receiver, const char * member) QAction * addAction(const QIcon & icon, const QString & text, const QObject * receiver, const char * member) QAction * addSeparator() QAction * addWidget(QWidget * widget) void clear() void setAllowedAreas(Qt::ToolBarAreas areas)//設置允許停靠區域 void setFloatable(bool floatable)//是否允許拖動成獨立窗口,默認是 void setMovable(bool movable)//設置是否可移動位置,默認是 void setOrientation(Qt::Orientation orientation)//設置方向,主窗口為QMainWindow時不能使用,值有Qt::Horizontal和Qt::Vertical QAction * insertSeparator(QAction * before) QAction * insertWidget(QAction * before, QWidget * widget) bool isAreaAllowed(Qt::ToolBarArea area) const bool isFloatable() const bool isFloating() const bool isMovable() const Qt::Orientation orientation() const QAction * toggleViewAction() const Qt::ToolButtonStyle toolButtonStyle() const QWidget * widgetForAction(QAction * action) const QAction * actionAt(const QPoint & p) const QAction * actionAt(int x, int y) const Qt::ToolBarAreas allowedAreas() const QSize iconSize() const
Public Slots
| void | setIconSize(const QSize & iconSize) |
| void | setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle) |
Signals
| void | actionTriggered(QAction * action) |
| void | allowedAreasChanged(Qt::ToolBarAreas allowedAreas) |
| void | iconSizeChanged(const QSize & iconSize) |
| void | movableChanged(bool movable) |
| void | orientationChanged(Qt::Orientation orientation) |
| void | toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle) |
| void | topLevelChanged(bool topLevel)//當它的float屬性改變時,信號發送, |
| void | visibilityChanged(bool visible)//可見性 |
————————————————————————————————————————————————————————
狀態欄,位於窗口的最下方,用於顯示文本,提示用戶當前的操作
QStatusBar(QWidget * parent = 0) virtual ~QStatusBar() void addPermanentWidget(QWidget * widget, int stretch = 0)//添加永久性部件,永久意味着它不能被臨時消息(showMessage函數)掩蓋,位於最右端,stretch伸縮性為0 表示給小部件最小的空間 void addWidget(QWidget * widget, int stretch = 0)//位於最左端,當調用showMessage函數時,消息文字將與此函數添加的部件上文字重合 QString currentMessage() const int insertPermanentWidget(int index, QWidget * widget, int stretch = 0) int insertWidget(int index, QWidget * widget, int stretch = 0) bool isSizeGripEnabled() const void removeWidget(QWidget * widget) void setSizeGripEnabled(bool)//SizeGrip為尺寸夾具,狀態欄的最右下角斜線即是,用於拖動改變窗口尺寸
Public Slots
| void | clearMessage() |
| void | showMessage(const QString & message, int timeout = 0)//在狀態欄最左端顯示message,timeout毫秒后文字消失 |
Signals
| void | messageChanged(const QString & message) |
——————————————————————————————————————————————————————————————
尺寸夾具,用於改變窗口大小
Public Functions
| QSizeGrip(QWidget * parent) | |
| ~QSizeGrip() |
Reimplemented Public Functions
| virtual void | setVisible(bool visible) |
| virtual QSize | sizeHint() const |
——————————————————————————————————————————————————————————————
示例:

pushButton右上角有QSizeGrip ,拖動它可向右上方改變整個MainWindow的大小。
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QPushButton> #include <QLabel> #include <QSizeGrip> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QPushButton *btn=new QPushButton("PermanentWidget"); QLabel *lbl=new QLabel("Widget"); ui->statusBar->addPermanentWidget(btn); ui->statusBar->addWidget(lbl); ui->statusBar->showMessage("hello",3000); QSizeGrip *grip =new QSizeGrip(ui->pushButton); grip->setVisible(true);//不設置這個見不到它…… } MainWindow::~MainWindow() { delete ui; }
