最近在学习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、想不起来了,下次想起来在写吧。

转载于:https://www.cnblogs.com/hnuhui/p/4403530.html

QT mainwindow四件套相关推荐

  1. Qt Mainwindow添加/删除标题栏

    需求:添加/删除Qt Mainwindow的标题栏 特殊点:不能在Mainwindow外部进行设置,须在Mainwindow内部设置(SLOT或其他内部函数中) 传统方法: this->setW ...

  2. QT mainwindow.ui: Warning: The name ‘layoutWidget‘ (QWidget) is already in use, defaulting to ‘layou

    找到ui_mainwindow.h 更改layoutwidget之后,ui界面仍然无法更新,只能参照网上解决办法. 直接找到对应的ui文件,右键,然后open command prompt with ...

  3. QT学习日志(附:简易计算器,qq登录界面,简易绘图板,植物大战僵尸魔改版项目实践)

    目录 写在前面 实训前一天 头文件无法生成 项目栏不见了 不知道如何发布程序 实训第一天(附简易计算器的实现) 自定义命名空间的相关问题 关于隐式调用构造函数的问题 实训第二天(不附地址薄的实现) 关 ...

  4. 将OSG嵌入QT窗口系统中,实现拖拽界面

    将OSG嵌入QT窗口系统中,实现拖拽界面 一.原理 OSG底层使用的是OpenGL图形系统,QT也增加了对OpenGL的支持,因此,可以通过QT的OpenGL模块,实现将OSG窗口嵌入到QT中,这样可 ...

  5. qt-重写event(),事件过滤器,定时器,事件总结

    一.认识事件 1.事件(event) 是由系统或者 Qt 本身在不同的时刻发出的.当用户按下鼠标.敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件.一些事件在对用户操作做出响应时发出,如 ...

  6. 通过 Nginx 代理转发配置实现跨域(API 代理转发)

    通过 Nginx 代理转发配置实现跨域(API 代理转发) 阅读 2285 收藏 119 2017-04-08 原文链接:www.thinktxt.com 1元视频体验视频通话10000分钟cloud ...

  7. Houdini制作pyside2插件崩溃原因

    工具架添加新工具,把自己写的python界面代码导入进去 主要是sys添加环境路径,使得houdini可以找到我们的插件 然后reload是重新加载模块,这样就不需要每次都重新启动houdini查看结 ...

  8. Logitech G27 程序读取数据

    由于实验需要读取Logitech G27的数据,就基于DirectX写了个程序读取数据,比较仓促,这里做简单总结(需要的朋友看一遍就应该很容易理解了~~). 开发环境: VS2008+Qt库(设计界面 ...

  9. 使用 TSC TX600 使用命令驱动打印机打印二维码

    背景:由于公司项目需要二维码扫描功能 作用:通过加密算法生成的数据使用二维码打印机打印出二维码来,贴到设备是进行识别 环境:qt create ,外部库openssl加密库 rsa加密算法    电脑 ...

最新文章

  1. linux oracle查询乱码问题,Linux环境Oracle显示乱码的解决方法
  2. .CN域名总量达1090.6万个:8月份共净增13.8万个
  3. 未来的数据中心(三)
  4. eclipse-jee版连接tomcat(转载)
  5. 第四-generation音频:互联网智能声音会火
  6. 24年前华为招聘广告是什么样的?
  7. 记一次 .NET WPF布草管理系统 挂死分析
  8. 【2018.3.31】模拟赛之二-ssl2407 负进制【贪心】
  9. java查询和添加客户信息_4.从零点五开始的Java之路(增删改查-客户)
  10. 学python有什么用-为什么要学Python?学了有什么用?
  11. R语言-实用功能性语句1
  12. BricsCAD 21 for Mac(CAD建模软件)多语言版
  13. Extjs基础入门视频教程
  14. cannot retry due to redirection, in streaming mode
  15. android opencv hu 不变矩,图像的矩(含hu不变矩)
  16. 团队管理:需求之殇——两个凡是
  17. HTTPS 和 SSL/TLS 协议:密钥交换(密钥协商)算法及其原理
  18. 每日一算法:冒泡排序
  19. POI导出Excel工具类(简单看完就会)
  20. Tkinter学习笔记之Entry

热门文章

  1. == 与 === 介绍与区别
  2. Apache Nutch 1.6 发布
  3. javascript---parseInt(08)或parseInt(09)转换返回0的解决办法
  4. 使用Google Test的一个简单例子
  5. 遗传算法各Matlab工具箱简介
  6. unknown error mysql_mysql执行sql文件报错Error: Unknown storage engine‘InnoDB’的解决方法...
  7. 计算机一级怎么描述,计算机一级「关于RGB正确的描述的是」相关单选题
  8. 计算机c盘能分区吗,电脑C盘怎么分区
  9. 有var d = new Date(‘20xx-m-09‘),可以设置为m+1月份的操作是?
  10. 微信小程序源码下载链接