【QT】创建第一个QT程序

news2025/1/27 13:00:04

下面的前7个可以先不看,直接从8开始看

1. 创建Qt程序

  1. 一个Qt程序的组成部分:应用程序类,窗口类
  2. 应用程序类个数:有且只有一个QApplication a;
  3. 如何查看类对应的模块:光标移动到类上,F1
  4. qmake+=模块的名字

2. 第一个Qt程序

  1. 在窗口中添加按钮类名:QPushButton
  2. 设置按钮显示的内容:setText
  3. 移动按钮位置:move
  4. 按钮设置父窗口:setParent
  5. 设置窗口的大小:resize() resizeFixed()

3. Qt的坐标体系:

  1. 坐标原点:左上角
  2. x轴延伸的方向:向右递增
  3. y轴延伸的方向:向下递增

4. Qt内存回收机制

满足什么条件的类不需要用户手动释放内存?

  1. 从QObject类直接或间接派生
  2. 给直接或间接派生出的类,指定父对象

5.信号和槽

  1. 格式:connect(信号发出者对象(指针),&className::clicked,信号接收者对象(指针),&classB:slot);

标准信号槽的使用:

  • 自定义槽函数
  1. void
  2. 可以重载
  3. 需要跟信号对象,个数<=信号的参数个数
  • 自定义信号
  1. void
  2. 可以重载
  3. 需要使用-个关键字声明:signals
  4. 不需要函数定义

6. 拓展:

  1. 信号可以连接信号(参数的对应)
  2. 一个信号可连接多个槽函数
  3. 多个信号可连接同一个槽函数
  4. 槽函数可以使用1 ambda表达式

7. lambda表达式

=
{
}
在.pro添加一次CONFIG+=c++11

8. 下面三种均可以作为顶层窗口

  • QWidget: 所有窗口类的父类。
  • QDialog :顶层窗口(第一个打开的窗口,对话框窗口) ,只有一个关闭按钮。其他的窗口有最大化最小化
  • QMainWindow:菜单栏,工具栏,状态栏

在这里插入图片描述

控件:窗口类(都是从QWidget派生的)

#include "mywidget.h"   //添加的窗口类,
                            //在qt中类名和头文件名相同
#include <QApplication>     //应用程序类:比如创建好的窗口的拖动,放大缩小等

int main(int argc, char *argv[])
{
    //应用程序类,在每一个qt程序中有且仅有一个
    QApplication a(argc, argv);
    //窗口类,创建出来之后默认不显示
    MyWidget w;  //如果要对 窗口操作,就必须对 w进行操作
    //显示窗口
    w.show();
     
     //(里面就是一个死循环,收到某一个信号就会结束(跳出循环),结束对窗口的监听)
    return a.exec();//走到后台进行了一个消息
}

MyWidget w; //如果要对 下面的窗口(顶层窗口)操作,就必须对 w进行操作

在这里插入图片描述

当用到什么模块,就加入到Firstproject.pro的文件中,如图使用到了core,gui就加进去

在这里插入图片描述

如何知道当前类要用到哪些模块?

在这里插入图片描述

按两次Esc即可退出。

关于Firstproject.pro的介绍

#qt程序用到的模块
QT       += core gui
#兼容以前的版本,5.0以上可以不用加,如果是5.0以下没有Qwidget
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

#生成的应用程序的名字
TARGET = Firstproject
#指定生成的makefile的类型lib
TEMPLATE = app

CONFIG += c++11
# 源文件 \换行就加\
SOURCES += \
        main.cpp \
        mywidget.cpp

HEADERS += \
        mywidget.h

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1495006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java开发从零开始,mysql面试题索引

前言 “金九银十”的秋招热潮已经开始了&#xff0c;经过7月8月这两个月的提前批&#xff0c;终于成功拿下了一些大厂的offer。小编经过这么多次的面试&#xff0c;这两天整理了一份面试清单分享给大家&#xff0c;希望能给大家一点帮助(java方向)&#xff0c;觉得有帮助的同学…

3分钟带你搞定电流采样电阻选型

大家好&#xff0c;我是砖一。 一&#xff0c;电流采样电阻的介绍 电流检测电路常用于高压短路保护、电机控制、DC/DC换流器、系统功耗管理、二次电池的电流管理、蓄电池管理等电流检测等场景。 比如&#xff0c;对于电机来说&#xff0c;电流检测电路是为了检测电流功能有比…

ssm基于javaEE+springboot校园闲置二手物品拍卖交易平台_ngad7

为提升浏览用户观感及使用体验&#xff0c;本系统要具有易用性和美观性。通过页面的简单提示就可完成操作&#xff0c;校园闲置物品交易平台展示界面应该清楚简洁&#xff0c;使用户通过美观的前台页面能快速定位想要浏览的校园闲置物品交易平台信息。后台界面也应简约&#xf…

领腾讯云红包,可抵扣云服务器订单金额

在2024年腾讯云新春采购节优惠活动上&#xff0c;可以领取新年惊喜红包&#xff0c;打开活动链接 https://curl.qcloud.com/oRMoSucP 会自动弹出红包领取窗口&#xff0c;如下图&#xff1a; 腾讯云2024新春采购节红包领取 如上图所示&#xff0c;点击“领”红包&#xff0c;每…

5G网络深度覆盖提升感知优化案例

随着5G业务的发展&#xff0c;用户感知尤为重要&#xff0c;随着人们的生活水平不断提高&#xff0c;对网络使用的要求也越来越高&#xff0c;用户感知更加重要&#xff0c;数据业务已超越语音业务成为流量和收入的主体&#xff0c;信号质量的决定作用更明显。5G TDD的频谱大带…

23蓝桥杯ACM培训-栈

前言&#xff1a; 回校第二天训练&#xff0c;今天的题目主要与stack有关。 正文&#xff1a; Problem:A 栈-程序员输入问题&#xff1a; #include<bits/stdc.h> using namespace std; int main(){stack<char> s1;stack<char> s2;string str;getline(cin,…

模仿Gitee实现站外链接跳转时进行确认

概述 如Gitee等网站&#xff0c;在有外部链接的时候如果不是同域则会出现一个确认页面。本文就带你看看这个功能应该如何实现。 效果 实现 1. 实现思路 将打开链接作为参数传递给一个中间页面&#xff0c;在页面加载的时候判断链接的域名和当前网站是否同域&#xff0c;同域…

贪心 Leetcode 763 划分字母区间

划分字母区间 Leetcode 763 学习记录自代码随想录 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。 返…

机器学习-面经(part7、无监督学习)

机器学习面经系列的其他部分如下所示&#xff1a; 机器学习-面经&#xff08;part1&#xff09; 机器学习-面经(part2)-交叉验证、超参数优化、评价指标等内容 机器学习-面经(part3)-正则化、特征工程面试问题与解答合集机器学习-面经(part4)-决策树共5000字的面试问题与解答…

C++ spfa求最短路 (可以带负权边)SPFA算法

给定一个 n 个点 m 条边的有向图&#xff0c;图中可能存在重边和自环&#xff0c; 边权可能为负数。 请你求出 1 号点到 n 号点的最短距离&#xff0c;如果无法从 1 号点走到 n 号点&#xff0c;则输出 impossible。 数据保证不存在负权回路。 输入格式 第一行包含整数 n 和…

一个基于差异同步数据库结构的工具 - Skeema

本文是 GO 三方库推荐的第 5 篇&#xff0c;继续介绍数据库 schema 同步工具&#xff0c;我前面已经写了两篇这个主题的文章。系列查看&#xff1a;Golang 三方库。 今天&#xff0c;推荐是的一个基于差异实现数据库 schema 迁移的工具库 - skeema&#xff0c;同样由 Go 实现。…

docker-compose Install Dockge

Dockge Dockge 是一个精美的、易于使用的、反应式的自托管 docker compose.yaml 面向堆栈的管理器。 主要特性: 通过Web页面管理compose.yaml文件。 创建/编辑/启动/停止/重新启动/删除容器。更新Docker镜像。交互式Web终端。响应式设计,实时更新进度(Pull/Up/Down)和Web…

#include<ros/ros.h>头文件报错

快捷键 ctrl shift B 调用编译&#xff0c;选择:catkin_make:build&#xff09;(要先在vscode上添加扩展&#xff1a;ros) 可以点击配置设置为默认&#xff0c;修改.vscode/tasks.json 文件 修改.vscode/tasks.json 文件&#xff0c;否则ros.h头文件会报错 内容修改为以下内…

代码学习记录13

随想录日记part13 t i m e &#xff1a; time&#xff1a; time&#xff1a; 2024.03.06 主要内容&#xff1a;今天的主要内容是二叉树的第二部分哦&#xff0c;主要有层序遍历&#xff1b;翻转二叉树&#xff1b;对称二叉树。 102.二叉树的层序遍历226.翻转二叉树101. 对称二叉…

Java精品项目--第6期基于SpringBoot的茶叶商城的设计分析与实现

项目技术栈 SpringBootMavenMySQLJAVAMybatis-PLusVue.js&#xff08;非前后端分离&#xff09;Element-UI&#xff08;非前后端分离&#xff09;… 表截图 项目截图

分布式事务(SeataClient)

问题场景 元数据 库存 100订单记录为空下单操作 @AutowiredRestTemplate restTemplate;/*** 下单** @return*/@Transactional // 开启事务 异常后触发数据库回滚操作@Overridepublic Order create(Order order) {// 插入订单orderMapper.insert(order);// 扣减库存 MultiValu…

Python调用edge-tts实现在线文字转语音

edge-tts是一个 Python 模块&#xff0c;允许通过Python代码或命令的方式使用 Microsoft Edge 的在线文本转语音服务。 项目源码 GitHub - rany2/edge-tts: Use Microsoft Edges online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an…

Intel RealSense D435环境搭建之安装pyrealsense2

ERROR: Could not find a version that satisfies the requirement pyrealsense2 (from versions: none) pip install pyrealsense2 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 方法一&#xff1a;升级pip python -m pip install --upgrade pip 方…

Scrapy与分布式开发(3):Scrapy核心组件与运行机制

Scrapy核心组件与运行机制 引言 这一章开始讲解Scrapy核心组件的功能与作用&#xff0c;通过流程图了解整体的运行机制&#xff0c;然后了解它的安装与项目创建&#xff0c;为后续实战做好准备。 Scrapy定义 Scrapy是一个为了爬取网站数据、提取结构性数据而编写的应用框架…

java-新手笔记(类篇)-暂时总结

类定义 用于存储的方法的结构体容器,可以封装多个方法 当在ideal编程器中的工程中创建类文件的同时,就会创建一个公共类, 当我们在新建一个公共类的时候,会出现报错,其要求公共类必须同类文件名一致 同一文件编写新类的时候,不要加public修饰词 调用类…