Qt添加菜单栏

两种方法,一是用代码直接手动添加,二是在Qtdesigner中在界面上直接添加。

这里介绍用代码如何添加,需要用到两个类QMenu和QAction,Demo程序界面如下:

QtGuiApplication4.cpp

#include "QtGuiApplication4.h"
#include <qpushbutton.h>
#include <QMessageBox>

QtGuiApplication4::QtGuiApplication4(QWidget *parent)
  : QMainWindow(parent)
{
  ui.setupUi(this);
  myAc1 = new QAction(this);  
  myAc1->setText(QString::fromLocal8Bit("新建"));
  myAc1->setStatusTip("This is ac1.");      
  //myAc1->setShortcuts(QKeySequence::Print); //设置快捷方式  
  myAc1->setShortcut(QKeySequence("Ctrl+8")); //随意指定快捷方式  
  ui.mainToolBar->addAction(myAc1);          //工具条  
  connect(myAc1, SIGNAL(triggered()), this, SLOT(pop1()));   
  myAc2 = new QAction(this);  
  myAc2->setText(QString::fromLocal8Bit("打开"));  
  myAc2->setStatusTip("This is ac2");  
  connect(myAc2, SIGNAL(triggered()), this, SLOT(pop2()));   
  myAc3 = new QAction(this);  
  myAc3->setText(QString::fromLocal8Bit("另存为"));  
  myAc3->setStatusTip("This is ac3");  
  connect(myAc3, SIGNAL(triggered()), this, SLOT(pop3()));   
  fileMenu = menuBar()->addMenu(QString::fromLocal8Bit("文件"));  
  fileMenu->addAction(myAc1);  
  fileMenu->addAction(myAc2);  
  fileMenu->addAction(myAc3);   
  editMenu = menuBar()->addMenu(QString::fromLocal8Bit("编辑"));

}
void QtGuiApplication4::pop1()
{
  QMessageBox m(this);  
  m.setWindowTitle("MyAction1");  
  m.setText("This is a messagebox for my action1.");  
  m.exec();
} 
void QtGuiApplication4::pop2()
{ 
  QMessageBox m(this);  
  m.setWindowTitle("MyAction2");  
  m.setText("This is a messagebox for my action2.");  
  m.exec(); 
} 
void QtGuiApplication4::pop3()
{ 
  QMessageBox m(this);  
  m.setWindowTitle("MyAction3");  
  m.setText("This is a messagebox for my action3.");  
  m.exec(); 
}

QtGuiApplication4.h

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_QtGuiApplication4.h"
#include <QAction>

class QtGuiApplication4 : public QMainWindow
{
  Q_OBJECT

public:
  QtGuiApplication4(QWidget *parent = Q_NULLPTR);

private:
  Ui::QtGuiApplication4Class ui;
  QMenu *fileMenu;
  QMenu *editMenu;

  QAction *myAc1;
  QAction *myAc2;
  QAction *myAc3;

private slots:
  void pop1();
  void pop2();
  void pop3();
};

参考

  1. Qt 添加菜单及菜单的事件
  2. Qt添加菜单栏和工具栏
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值