1. QMainWindow

    • 菜单栏  最多有一个

      • QMenuBar *bar = MenuBar();
      • setMenuBar(bar);
      • QMenu *fileMenu = bar->addMenu("File");   创建菜单
      • QAction *newAction = fileMenu->addAction("New"); 创建菜单项
      • fileMenu->addSeparator();  添加分割线
    • 工具栏 可以有多个
      • QToolBar *toolbar = new QToolBar(this);
      • addToolBar(默认停靠区域, toolbar); Qt::LeftToolBarArea
      • 设置 后期停靠区域,设置浮动,设置移动
      • 添加菜单项 或者添加小空间
      • 一些代码:
        //菜单栏创建  只能最多有一个
        QMenuBar*bar = menuBar();
        setMenuBar(bar);
        QMenu *fileMenu = bar->addMenu("File");
        QMenu *editMenu = bar->addMenu("Edit"); QAction * newAction = fileMenu->addAction("New");
        //添加分割线
        fileMenu->addSeparator();
        QAction * openAction = fileMenu->addAction("Open"); //工具栏 可以有多个
        QToolBar *toolbar = new QToolBar(this);
        addToolBar(Qt::LeftToolBarArea,toolbar);
        //设置停靠范围
        toolbar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
        //设置浮动
        toolbar->setFloatable(false);
        //设置移动(总开关)
        toolbar->setMovable(false);
        //工具栏中设置内容
        toolbar->addAction(newAction);
        toolbar->addSeparator();
        toolbar->addAction(openAction);
        //工具栏中添加控件
        QPushButton *btn = new QPushButton("button",this);
        toolbar->addWidget(btn);
    • 状态栏的创建  最多一个
          //状态栏 最多有一个
      QStatusBar *stBar = statusBar();
      //设置到窗口中
      setStatusBar(stBar);
      //放标签控件
      QLabel * label = new QLabel("提示信息", this);
      stBar->addWidget(label); QLabel *label2 = new QLabel("右侧提示信息",this);
      stBar->addPermanentWidget(label2);
    • 铆接部件 浮动窗口 可以多个
         //铆接部件(浮动窗口) 可以有多个
      QDockWidget *dockWidget = new QDockWidget("浮动");
      addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
      //设置后期停靠区域, 只允许上下
      dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
    • 设置核心部件 只能一个
          //设置中心部件
      QTextEdit *edit = new QTextEdit();
      setCentralWidget(edit);
    • 资源文件
      • 将图片文件拷贝到项目位置下(这个很重要,如果放到其他路径下,会报错)
      • 右键项目->添加新文件->Qt->Qt resource->给资源文件起名(比如res)
      • res生成res.qrc
      • open in editor 编辑资源
      • 添加前缀 添加文件
      • 使用 ":+ 前缀名 + 文件名"
      • 示意图

      

QT - Day 2的更多相关文章

  1. QT内省机制、自定义Model、数据库

    本文将介绍自定义Model过程中数据库数据源的获取方法,我使用过以下三种方式获取数据库数据源: 创建 存储对应数据库所有字段的 结构体,将结构体置于容器中返回,然后根据索引值(QModelIndex) ...

  2. Ubuntu 下安装QT

    Ubuntu 下安装QT 本文使用的环境 QT Library: qt-everywhere-opensource-src-4.7.4.tar.gz QT Creator: qt-creator-li ...

  3. Qt安装配置

    Qt Creator: 下载: Qt 5.5.1 for Windows 32-bit(MinGW 4.9.2, 1.0 GB):http://download.qt.io/official_rele ...

  4. Qt信号与槽自动关联机制

    参考链接1:http://blog.csdn.net/skyhawk452/article/details/6121407 参考链接2:http://blog.csdn.net/memory_exce ...

  5. 保持Qt GUI响应的几种方法

    最开始使用Qt时就遇到过QT Gui失去响应的问题,我是用多线程的方式解决的,然而通常来说,多线程是会降低程序的运行速度. 之后,在使用QSqlQuery::execBatch()函数时,Qt Gui ...

  6. Qt 中使用Singleton模式需小心

    在qt中,使用Singleton模式时一定要小心.因为Singleton模式中使用的是静态对象,静态对象是直到程序结束才被释放的,然而,一旦把该静态对象纳入了Qt的父子对象体系,就会导致不明确的行为. ...

  7. Qt——组件位置随窗口变化

    当我们用Qt Designer设计界面时,有时会面临这样一个问题:需要在窗口指定位置放置组件,并且当窗口位置大小改变时,该组件相对其父对象的位置是不变的,如下面两幅图所示 ,首先看上面这幅图,注意bu ...

  8. (转) Qt 出现“undefined reference to `vtable for”原因总结

    由于Qt本身实现的机制所限,我们在使用Qt制作某些软件程序的时候,会遇到各种各样这样那样的问题,而且很多是很难,或者根本找不到原因的,即使解决了问题,如果有人问你为什么,你只能回答--不知道. 今天我 ...

  9. qt中ui的 使用介绍

    1.什么是ui?ui通常是用Qt 设计师设计出来的界面文件的后缀.通常情况下ui是一个指向这个界面类的指针.ui-> 一般就是用来访问这个界面类里面的控件.例如你的ui文件里有一个叫okButt ...

  10. Qt 开启鼠标跟踪,自动激活mouseMoveEvent的问题

    最近在Qt上实现一个功能,鼠标在图片上移动,触发mouseMoveEvent事件,进而生成一个小的半透明窗口,放大显示以鼠标为中心的一个区域的图像并随鼠标移动.但是,必须鼠标摁下,才触发mouseMo ...

随机推荐

  1. [转帖]Linux ps -o 查看进程启动时间

    https://www.cnblogs.com/apink/p/17572435.html 时间参数 如下表 参数  含义 start 显示进程启动时间的简短格式.通常,它会显示日期时间中的月-日 或 ...

  2. [转帖]关于linux:NUMA架构下的内存延迟区别测试

    https://lequ7.com/guan-yu-linuxnuma-jia-gou-xia-de-nei-cun-yan-chi-qu-bie-ce-shi.html 当初的服务器物理机CPU个别 ...

  3. [置顶] python常用web开发框架

    Flask篇 第一篇:初识Flask.快速启动 第二篇:Flask四剑客 第三篇:Flask的配置文件 第四篇:Flask路由 第五篇:Flask模板渲染 第六篇:Flask的请求与响应 第七篇:Fl ...

  4. Vue双向数据绑定原理-上

    Vue响应式的原理(数据改变界面就会改变)是什么? 时时监听数据变化, 一旦数据发生变化就更新界面, 这就是Vue响应式的原理. Vue是如何实现时时监听数据变化的 通过原生JS的defineProp ...

  5. 来啦!2020 Java开源项目权威排名解读:Spring Boot排名稳定、Shiro未上榜

    这篇文章对于我们做技术选型以及技术学习都有极强的指导性作用,建议收藏! 原创不易,若有帮助,欢迎点赞! 推荐: 接近100K star 的Java学习/面试指南 Github 95k+点赞的Java面 ...

  6. 基于中文金融知识的 LLaMA 系微调模型的智能问答系统:LLaMA大模型训练微调推理等详细教学

    基于中文金融知识的 LLaMA 系微调模型的智能问答系统:LLaMA大模型训练微调推理等详细教学 基于 LLaMA 系基模型经过中文金融知识指令精调/指令微调(Instruct-tuning) 的微调 ...

  7. 【C语言深度解剖】一篇解决程序的环境【编译+链接详解】让面试官给我们竖起大拇指

    文章目录 程序的翻译环境 翻译环境详解 编译 预编译 编译 汇编 关于形成符号表 链接 运行环境 尾声 [C语言深度解剖][Linux操作系统]程序的环境[编译+链接详解] 那么这里博主先安利一下一些 ...

  8. CF678F Lena and Queries题解

    题目链接:CF 或者 洛谷 可以看到查询和插入就是李超线段树的基本操作,但在原有基础上多了一个删除操作,李超线段树不支持删除操作,但支持可撤销和可持久化,所以我们容易想到外层再套一个线段树分治即可.本 ...

  9. VS Code 使用

    Tips 总结 1. VSCode显示空格和tab符号 1.打开setting,在搜索框中输入renderControlCharacters,选中勾选框,即可显示tab 2.在搜索框中输入render ...

  10. 交换变量a,b的值(java)

    方法1:引入中间变量 int a = 10; int b = 20; int temp = a; a = b; b = temp; System.out.println("a = " ...