码迷,mamicode.com
首页 > 其他好文 > 详细

Qt中实现菜单和工具栏功能

时间:2015-01-04 16:41:14      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:

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.show();
    return a.exec();
}
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 = 0);
    ~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中实现菜单和工具栏功能

标签:

原文地址:http://www.cnblogs.com/lwngreat/p/4201268.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!