Qt中实现菜单和工具栏功能
Qt创建菜单和工具栏:
一、 temp.h文件的内容
1.定义类temp继承QMainWindow
2.添加Q_OBJECT , 构造函数 、 析构函数等内容
3.$重点内容
3.1定义QAction *newAction; (相当于菜单和工具条里面的基本功能如:新建、打开文件)
3.2定义QMenu *fileMenu;
3.3定义 QToolBar *fileToolBar;
4.定义QAction的响应函数即slot函数:
private slots:
void msg();
二、 temp.cpp 文件内容
1.添加头文件
#include <QtGui>
#include "temp.h"
#include<windows.h> //MessageBox()函数
2.填写构造函数(重点内容)
2.1 初始化和设置QAction
newAction = new QAction(tr("&New"), this);
newAction->setIcon(QIcon("D:/Documents/Visual Studio 2010/Projects/qt-book/chap03/temp/images/new.png"));
newAction->setShortcut(QKeySequence::New);
newAction->setStatusTip(tr("Create a new spreadsheet file"));
connect(newAction, SIGNAL(triggered()), this, SLOT(msg()));
2.2 添加File菜单并返回指针给QMenu *fileMenu , 将QAction添加到菜单File中。
fileMenu = menuBar()->addMenu(tr("&File")); //menuBar()需要头文件#include <QtGui>
fileMenu->addAction(newAction);
2.3 添加File工具栏并返回指针给QToolBar * fileToolBar ,将QAction添加到File工具栏中
fileToolBar = addToolBar(tr("&File"));
fileToolBar->addAction(newAction);
3.实现void msg()函数(用于测验使用)
void temp::msg()
{ MessageBox(NULL,TEXT("这是对话框"),TEXT("你好"),MB_ICONINFORMATION|MB_YESNO); }
三、 main.cpp文件的内容
#include "temp.h"
#include <QtGui/QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
temp w;
//w.setFixedSize(800,22); //此函数可以实现ENVI菜单样式
w.show();
return a.exec();
} main.cpp
main.cpp
四、补充temp.h和temp.cpp文件
#ifndef TEMP_H
#define TEMP_H #include <QtGui/QMainWindow>
class temp : public QMainWindow
{
Q_OBJECT public:
temp(QWidget *parent = );
~temp();
private:
QAction *newAction;
QMenu *fileMenu;
QToolBar *fileToolBar; private slots:
void msg(); }; #endif // TEMP_H
temp.h
#include <QtGui>
#include "temp.h"
#include<windows.h>
temp::temp(QWidget *parent)
: QMainWindow(parent)
{
newAction = new QAction(tr("&New"), this);
newAction->setIcon(QIcon("D:/Documents/Visual Studio 2010/Projects/qt-book/chap03/temp/images/new.png"));
newAction->setShortcut(QKeySequence::New);
newAction->setStatusTip(tr("Create a new spreadsheet file"));
connect(newAction, SIGNAL(triggered()), this, SLOT(msg())); fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(newAction); fileToolBar = addToolBar(tr("&File"));
fileToolBar->addAction(newAction); //setCentralWidget(fileToolBar); //此函数的作用是将QWidget控件放在中间位置
} temp::~temp()
{ }
void temp::msg()
{
MessageBox(NULL,TEXT("这是对话框"),TEXT("你好"),MB_ICONINFORMATION|MB_YESNO);
}
temp.cpp
五、结果预览


六、工程文件下载地址
http://pan.baidu.com/s/1mgkOkrQ
Qt中实现菜单和工具栏功能的更多相关文章
- Qt5:Qt中屏幕或窗口截图功能的实现
要想在Qt中实现屏幕或窗口截图功能 ,通常有两种方法: 1 -- 使用 QPixmap 类 2 -- 使用 QScreen类 然而虽然俩两种方法用到的类不相同,但是调用到的类成员函数的函数名称和参 ...
- qt中的菜单QMenu QAction
Qt中要建立菜单,有三个类很重要: QMenuBar(QWidget * parent = 0) QMenu(QWidget * parent = 0) QMenu(const QString &am ...
- PyQt5教程——菜单和工具栏(3)
PyQt5中的菜单和工具栏 在这部分的PyQt5教程中,我们将创建菜单和工具栏.菜单式位于菜单栏的一组命令操作.工具栏是应用窗体中由按钮和一些常规命令操作组成的组件. 主窗口 QMainWindow类 ...
- 在PyQt中构建 Python 菜单栏、菜单和工具栏
摘要:菜单.工具栏和状态栏是大多数GUI 应用程序的常见且重要的图形组件.您可以使用它们为您的用户提供一种快速访问应用程序选项和功能的方法. 本文分享自华为云社区<Python 和 PyQt:创 ...
- Qt中截图功能的实现
提要 需求:载入一张图片并显示,能够放大缩小,能够截取图片的某个矩形并保存. 原以为蛮简单的一个功能,事实上还是有点小复杂. 最简单Qt图片浏览器能够參考Qt自带的Demo:Image Viewer ...
- 在 jupyter 中添加菜单和自动完成功能
在 jupyter 中添加菜单和自动完成功能 参考文档http://www.360doc.com/content/17/1103/14/1489589_700569828.shtmlhttp://to ...
- Qt中QMenu的菜单关闭处理方法
Qt中qmenu的实现三四千行... 当初有个特殊的需求, 要求菜单的周边带几个像素的阴影, 琢磨了半天, 用QMenu做不来, 就干脆自己用窗口写一个 然而怎么让菜单消失却非常麻烦 1. 点击菜单项 ...
- qt中qlineedit和qtextedit右键菜单翻译成中文
没有linguist和lupdate等命令需要安装Linguist: 在Terminal中输入: sudo apt-get install qt4-dev-tools qt4-doc qt4-qtco ...
- 第47课 Qt中的调色板
1. QPalette类 (1)QPalette类提供了绘制QWidget组件的不同状态所使用的颜色. (2)QPalette对象包含了3个状态的颜色描述 ①激活颜色组(Active):组件获得焦点使 ...
随机推荐
- Android服务之AIDL
在android开发过程中,为了让其他的应用程序,也可以访问本应用程序的服务,android系统采用远程过程调用来实现.android通过接口来公开定义的服务.我们将能够夸进程访问的服务成为AIDL服 ...
- 利用cookie改变背景色
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 关于textField
如果想给textField设置背景图片,首先设置该控件的bounder Style为最左边的无style,然后设置背景图片 如果设置textField弹出键盘 的发送按钮:设置右侧Return K ...
- windows系统下搭建Python开发环境
1.首先下载最新的Python http://www.python.org/download/,我下载的是最新的Python3.5.1 2.下载完成之后开始安装,安装就比较简单了,一路下一步. 3.安 ...
- URL & webkitURL
base64带来的坑 在web中想要是实现图片在线预览的方式有几种 1.先上传 2.使用FileReader对象 3.URL.createObjectURL(file|blob) base64 能将图 ...
- arrayAccess的接口使用
<?php //get the methods instance of ArrayAccess //get the properties instance of ArrayAccess $ref ...
- locate命令的安装
linux中locate命令可以快速定位我们需要查找的文件,但是在yum中,locate的安装包名为mlocate(yum list | grep locate可以查看),安装方法: yum -y i ...
- CodeForces 187A Permutations
反向思维,先求数组中不用处理的元素个数,再用n减去这个数,得到结果. #include <iostream> #include <cstring> #define maxn 2 ...
- Oracle EBS-SQL (INV-10):检查库存接口.sql
/*检查库存接口表*/ select msi.segment1 项目编码, msi.description ...
- QP在STM32F10X上第一个应用
两天没有写博客了,这两天主要还是在考虑软件的结构性问题,用不用QP?用不用ST库函数?看了ucos,freertos,tinyos以及Contiki,库函数的问题看了使用库的软件结构,直接操作 ...