Qt Widgets——工具欄和狀態欄


本文主要涉及QSizeGrip ,QStatusBar ,QToolBar

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 

狀態欄,位於窗口的最下方,用於顯示文本,提示用戶當前的操作

   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)

——————————————————————————————————————————————————————————————

QSizeGrip 

尺寸夾具,用於改變窗口大小

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;  
}  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM