Qt中QAction在菜单栏、工具栏、状态来上的使用及添加快捷键

“需求”分析:

①有响应的“动作/Action”,使用QAction实现,这里的响应为弹出一个“消息框”。

②该“Action”可以在菜单栏、工具栏上点击。

③鼠标停留在该“动作”上时,状态栏显示关于该“动作”相关提示信息。

说明:

使用QMainWindow来使用菜单栏、工具栏、状态栏时会比较方便,因此使用QMainWindow来演示实例。

技术细节:

设置快捷键

this->myAction->setShortcuts(QKeySequence::Print);

设置状态栏显示

this->myAction->setStatusTip("This is my action.");

设置菜单栏

this->ui->menuBar->addMenu("Menus")->addAction(myAction);
设置工具栏

this->ui->mainToolBar->addAction(myAction);

-----------------------------------------------------------------------

以下是全部源代码:

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QAction>
#include <QMessageBox>
#include <QIcon>
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private slots:
    void popMesaagebox();
    
private:
    Ui::MainWindow *ui;
    QAction *myAction;
};
 
#endif // MAINWINDOW_H
 ----------------------------------------------------------------------- 

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->resize(600,400);
    this->setWindowIcon(QIcon("./1.png"));
 
    this->myAction = new QAction(this);
    this->myAction->setText("MyAction");
    this->myAction->setIcon(QIcon("./1.png"));
    this->myAction->setStatusTip("This is my action.");
    this->myAction->setShortcuts(QKeySequence::Print);
    connect(myAction,SIGNAL(triggered()),this,SLOT(popMesaagebox()));
 
    this->ui->menuBar->addMenu("Menus")->addAction(myAction);
 
    this->ui->mainToolBar->addAction(myAction);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
void MainWindow::popMesaagebox()
{
    QMessageBox m(this);
    m.setWindowTitle("MyAction");
    m.setText("This is a messagebox for my action.");
    m.exec();
}
 ----------------------------------------------------------------------- 

main.cpp

#include <QtGui/QApplication>
#include "mainwindow.h"
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}
 


图标文件使用的是这个:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值