Qt 添加菜单及菜单的事件响应(完整的示例)
时间:2022-07-23
本文章向大家介绍Qt 添加菜单及菜单的事件响应(完整的示例),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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();
};
在VS2010中建立Qt工程但是代码中总是出现红色波浪线。解决办法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法