最近在学习QT。下面总结一下mainwindow的设置步骤。

使用的平台为vs2013+qt5.3.2+qt-vs-addin1.2.3

1)安装软件

首先安装vs2013,这个不多介绍。

然后安装qt5.3.2和addin1.2.3。并设置相关环境。详细见http://tieba.baidu.com/p/3451630520?pid=61264366864#61264366864。

2)建立qt工程项目

具体省略。主要介绍相关代码。

主要涉及4个函数

CreateActions();
CreateMenus();
CreateToolBars();
CreateStatusBar();

具体实现代码例:

//定义动作ACtion

void MainWindow::CreateActions()
{
action_new_ = new QAction(QIcon(":/MainWindow/Resources/images/new.png"), tr("&New"), this);
action_new_->setShortcut(QKeySequence::New);
action_new_->setStatusTip(tr("Create a new file"));

action_open_ = new QAction(QIcon(":/MainWindow/Resources/images/open.png"), tr("&Open..."), this);
action_open_->setShortcuts(QKeySequence::Open);
action_open_->setStatusTip(tr("Open an existing file"));
connect(action_open_, SIGNAL(triggered()), imagewidget_, SLOT(Open()));

}

代码解释:QIcon(":/MainWindow/Resources/images/new.png")是读取图片的。注意双引号中的写法。 tr("&New")注意不要忘记&。setShortcut(QKeySequence::New)是设置快捷键,括号中的表示使用windows默认的快捷键。setStatusTip(tr("Create a new file"))表示状态栏显示的内容。

//定义菜单栏Menu

void MainWindow::CreateMenus()
{
menu_file_ = menuBar()->addMenu(tr("&File"));//创建了一个菜单叫File
menu_file_->setStatusTip(tr("File menu"));//状态栏显示File menu

//下面4个为菜单File中包含的Action
menu_file_->addAction(action_new_);
menu_file_->addAction(action_open_);
menu_file_->addAction(action_save_);
menu_file_->addAction(action_saveas_);

}

//定义工具栏ToolBar

void MainWindow::CreateToolBars()
{
toolbar_file_ = addToolBar(tr("File"));//创建了一个工具栏,名称为File

//下面3个为工具栏File包含的ACtion
toolbar_file_->addAction(action_new_);
toolbar_file_->addAction(action_open_);
toolbar_file_->addAction(action_save_);

}

//激活状态栏

void MainWindow::CreateStatusBar()
{
statusBar()->showMessage(tr("Ready"));
}

3)注意事项

1、在.h文件中声明用到的变量自不用说了。

2、工具栏中添加的各种图片表示应当在*.qrc文件中设置,不然没法显示。

3、想不起来了,下次想起来在写吧。

QT mainwindow四件套的更多相关文章

  1. Qt MainWindow结构

    (图自:FinderCheng 的 Qt 学习之路(11): MainWindow)

  2. 研究QGIS二次开发笔记(一)

    为了在QT程序中嵌入一个地图,最终选择了QGIS来干这件事.选型阶段真是呵呵.我折腾的是QGIS2.4.0. 首先,到官方网站下载安装QGIS.如果你跟我一样懒的话,可能希望下载一个已经编译好的win ...

  3. Qt无边框MainWindow如何拖动四周改变大小

    原来还有winEvent(), x11Event() and macEvent() 这些东西...不过貌似还需要找更好的办法,否则就无法跨平台了. 你需要重新处理部分窗体事件,以下代码适用于Windo ...

  4. QT 初试 MainWindow简易窗体

    1.创建一个空的QT工程文件 2 建立程序文件 MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include<QMainWind ...

  5. Qt学习之路MainWindow学习过程中的知识点

    一.Qt的GUI程序有一个常用的顶层窗口,叫做MainWindow MainWindow继承自QMainWindow.QMainWindow窗口分成几个主要的区域:   二.QAction类 QAct ...

  6. QT中QWidget、QDialog以及MainWindow的区别

    参考 http://blog.csdn.net/u011619422/article/details/47311101 QT中QWidget.QDialog以及MainWindow的区别 QWidge ...

  7. QT 创建主窗口 MainWindow 实例

    1. 2. mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include & ...

  8. Qt 学习之路 2(7):MainWindow 简介

    Qt 学习之路 2(7):MainWindow 简介  豆子  2012年8月29日  Qt 学习之路 2  29条评论 前面一篇大致介绍了 Qt 各个模块的相关内容,目的是对 Qt 框架有一个高屋建 ...

  9. Qt之Dialog\widget\ mainwindow的区别和布局管理器 & 分裂器的区别

    1.Dialog\widget\ mainwindow的区别 注意mainwindow和widget的区别,mainwindow都工具栏和菜单栏 Dialog and mainwinodws 都是继承 ...

随机推荐

  1. 总结-swing、JFrame、JScrollPane、JTabbedPane、JEditorPane

    总结-swing.JFrame.JButton.JScrollPane.JLabel.JTabbedPane.JEditorPane 1.JButton内边距(去掉按钮里的空白):setMargin2 ...

  2. Android Glide数据更新及内存缓存、硬盘缓存清理

    [转] 原文                                         Android Glide数据更新及内存缓存.硬盘缓存清理 Android的Glide在加载图片时候内部默 ...

  3. sql server中sql语句中单引号怎么转义?【转】

    sql server有两个转义符: ' 默认情况下, '是字符串的边界符, 如果在字符串中包含', 则必须使用两个', 第1个'就是转义符 另一个转义符是" 当SET QUOTED_IDEN ...

  4. 【Android测试】【第十六节】Instrumentation——初识+实战

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5503645.html 前言 有朋友给我留言说,能否介绍一下 ...

  5. 《Linux内核分析》第四周 扒开系统调用的“三层皮”

    [刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK FOUR( ...

  6. LeetCode Alien Dictionary

    原题链接在这里:https://leetcode.com/problems/alien-dictionary/ 题目: There is a new alien language which uses ...

  7. role roleMapping 权限说明

    根据我的理解,希望能帮助到大家 role表 是权限列表. roleMapping 关联权限(例如那个用户在那个权限里面,或者权限里面包含那个权限) roleMapping的数据不能单独添加.必须在ro ...

  8. zjuoj 3604 Tunnel Network

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3604 Tunnel Network Time Limit: 2 Secon ...

  9. RCNN 和SPPnet的对比

    一.RCNN: 1.首先通过选择性搜索,对待检测的图片进行搜索出2000个候选窗口. 2.把这2k个候选窗口的图片都缩放到227*227,然后分别输入CNN中,每个候选窗台提取出一个特征向量,也就是说 ...

  10. WinForm中跨线程操作控件

    在WinForm编程时会遇到通过后台线程操作界面的情况,直接在后台线程执行的方法中直接操作控件会报错,这时候就要使用跨线程方式间接操作控件.下面是两种实现方式.   1.采用定义delegate的方式 ...