当前位置: 首页 > news >正文

【Qt】Qt学习笔记(一):Qt界面初识

Qt 是一个跨平台应用程序和 UI 开发框架。使用 Qt 您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。Qt Creator是跨平台的Qt集成开发环境。

 创建项目

 Qt的一些界面,初学时一般选择Qt Widgets Application,将会创建一个窗口类应用程序

非Qt项目,Plain C Application和Plain C++ Application是纯C/C++项目。

创建项目的时候 QWidget,QMainWindow,QDialog,QWidget是所有能看到的窗口或者控件的父类,QMainWindow和QDialog都继承自它。

在这里可以自己更改Class name,然后头文件和源文件系统会自动帮我们修改成和Classname相同的前缀名。

代码编辑区

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>class Widget : public QWidget//Widget继承自QWidget
{Q_OBJECT//宏,引入qt信号和槽的一个宏public://parent窗口指针,父窗口对象的指针//parent为0/NULL,表示当前窗口对象是顶层窗口//顶层窗口就是在任务栏可以找到的窗口Widget(QWidget *parent = nullptr);~Widget();
};
#endif // WIDGET_H

main.cpp

#include "widget.h"#include <QApplication>
#include<iostream>int main(int argc, char *argv[])
{//创建一个应用程序对象QApplication a(argc, argv);//窗口类的一个对象Widget w;//把窗口显示出来w.show();// return a.exec();std::cout<<"before exec"<<std::endl;a.exec();//当不关闭窗口时,程序就在这里/** 死循环让程序一直运行,生命循环,消息循环* while(1)* {*  if(点击x按钮)*      break;*  if(点击最小化按钮)*      最小化动作;* }*/std::cout<<"after exec"<<std::endl;return 0;
}/** main函数中,QApplication就是Qt里边每个应用程序有且仅有一个的应用程序对象***/

widget.cpp

#include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent)
{}Widget::~Widget() {}/**创建项目的时候 QWidget,QMainWindow,QDialog*QWidget是所有能看到的窗口或者控件的父类,QMainWindow和QDialog都继承自它***/

还有,如果我们的构建系统配置文件,如果选择的构建工具是qmake,qmake适用于Qt项目的构建,那么在代码编辑区中还会生成一份后缀名为.pro的文件

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++17# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \hellowidget.cppHEADERS += \hellowidget.h# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
# 指定项目使用的Qt模块,这里指定了core和gui模块。
QT       += core gui# 如果Qt的主要版本号大于4,则添加widgets模块。
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets# 设置编译器标准为C++17。
CONFIG += c++17# 下面的行可以让你的代码在使用已弃用API时编译失败。
# 若要启用此功能,取消注释下面的行。
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # 禁用所有在Qt 6.0.0之前弃用的API# 指定源文件列表。
SOURCES += \main.cpp \hellowidget.cpp# 指定头文件列表。
HEADERS += \hellowidget.h# 默认的部署规则。
# 对于QNX平台,指定目标路径为/tmp/${TARGET}/bin。
qnx: target.path = /tmp/$${TARGET}/bin
# 对于其他Unix系统(不包括Android),指定目标路径为/opt/${TARGET}/bin。
else: unix:!android: target.path = /opt/$${TARGET}/bin
# 如果target.path不是空值,则安装目标到指定路径。
!isEmpty(target.path): INSTALLS += target

 运行后产生这样的窗口,一个白色的窗口界面,我们需要通过设计进行让界面变得更加丰富。

 进入设计模式:双击.ui文件即可进入设计模式

 

相关快捷键

Ctrl+R:编译并运行

Ctrl+B:执行编译操作

Ctrl+Tab:在不同文件之间进行切换

Ctrl+S:保存

Ctrl+/:快速注释

Ctrl+A:全选

Ctrl+C:复制

Ctrl+V:粘贴

Ctrl+X:剪切

Ctrl+鼠标上下滑动:页面放大/缩小

相关文章:

【Qt】Qt学习笔记(一):Qt界面初识

Qt 是一个跨平台应用程序和 UI 开发框架。使用 Qt 您只需一次性开发应用程序&#xff0c;无须重新编写源代码&#xff0c;便可跨不同桌面和嵌入式操作系统部署这些应用程序。Qt Creator是跨平台的Qt集成开发环境。 创建项目 Qt的一些界面&#xff0c;初学时一般选择Qt Widgets …...

Unity3D游戏的内存控制详解

前言 Unity3D是一款流行的游戏引擎&#xff0c;支持多种平台&#xff0c;包括PC、移动设备和VR等。随着游戏的复杂性不断提高&#xff0c;Unity3D的内存管理变得尤为重要。本文将详细介绍Unity3D游戏中的内存控制技术&#xff0c;包括自动内存管理、对象池、延迟加载资源和手动…...

《数据结构》--栈【概念应用、图文并茂】

本节讲完栈下次再讲一下队列&#xff0c;最后补充一个串&#xff0c;我们的线性结构基本就完事了。下图中黄色框框圈中的是我们今日份内容(分为两篇博客)&#xff1a; 知识体系图 栈(Stack-LIFO)结构 栈的基础概念 栈(Stack)是一个后进先出(Last-In-First-Out)的一个特殊数据…...

国外电商系统开发-运维系统文件下载

文件下载&#xff0c;作者设计的比较先进&#xff0c;如果下载顺利&#xff0c;真的还需要点两次鼠标&#xff0c;所有的远程文件就自动的下载到了您的PC电脑上了。 现在&#xff0c;请您首选选择要在哪些服务器上下载文件&#xff1a; 选择好了服务器以后&#xff0c;现在选择…...

【CSS in Depth 2 精译_045】7.1 CSS 响应式设计中的移动端优先设计原则(上)

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…...

在线教育新篇章:SpringBoot系统开发策略

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…...

cmdsh

#!/bin/bash #set -x bindirname "$0" bincd "$bin"; pwd echo $bin if [ $# -lt 2 ] then echo “Usage: ./runRemoteCmd.sh Command MachineTag” echo “Usage: ./runRemoteCmd.sh Command MachineTag confFile” exit fi cmd$1 tag$2 if [ a’ 3 ′…...

一键生成PPT的AI工具-Kimi!

一键生成PPT的AI工具-Kimi&#xff01; 前言介绍Kimi为什么选择Kimi如何使用Kimi在线编辑PPT下载生成的PPT自己编辑 结语 &#x1f600;大家好&#xff01;我是向阳&#x1f31e;&#xff0c;一个想成为优秀全栈开发工程师的有志青年&#xff01; &#x1f4d4;今天不来讨论前后…...

java.lang.NoClassDefFoundError: kotlin/Result解决方案

问题 在控制窗口上虽然报错是找不到对应的class&#xff0c;但是呢在我们导入kotlin的后&#xff0c;还是报相同的异常&#xff0c;在网上查找了各种资料&#xff0c;都没有解决方案。 问题分析 在idea2021之后&#xff0c;kotlin都使用远程仓库&#xff08;kotlinx-coeouti…...

LSTM的变体

一、GRU 1、什么是GRU 门控循环单元&#xff08;GRU&#xff09;是一种循环神经网络&#xff08;RNN&#xff09;的变体&#xff0c;它通过引入门控机制来控制信息的流动&#xff0c;从而有效地解决了传统RNN中的梯度消失问题。GRU由Cho等人在2014年提出&#xff0c;它简化了…...

LeetCode讲解篇之852. 山脉数组的峰顶索引

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们可以采用二分查找&#xff0c;每次查询区间中点元素与中点下一个元素比较 如果中点元素大于其下一个元素&#xff0c;则表示从中点开始向右是递减趋势&#xff0c;那峰值索引一定小于等于中点&#xff0c;我…...

矿井人员数据集,用于目标检测,深度学习,采用txt打标签,即yolo格式,也有原文件可以自己转换。总共3500张图片的数据量,划分给训练集2446张,

矿井人员数据集&#xff0c;用于目标检测&#xff0c;深度学习&#xff0c;采用txt打标签&#xff0c;即yolo格式&#xff0c;也有原文件可以自己转换。总共3500张图片的数据量&#xff0c;划分给训练集2446张&#xff1a; ### 矿井人员数据集用于目标检测的详细说明 #### 1. …...

消息队列RabbitMQ

文章目录 1. 简介与安装2. 基本概念3. SpringAMQP4. 交换机类型5. 消息转换器5.1 默认转换器5.2 配置JSON转换器 6 生产者的可靠性6.1 生产者超时重连机制6.2 生产者确认机制 6. MQ的可靠性6.1 数据持久化6.2 惰性队列 Lazy Queue 7. 消费者的可靠性7.1 消费者确认机制7.2 失败…...

RabbitMQ概述

什么是MQ MQ (message queue)消息队列 MQ从字⾯意思上看,本质是个队列,FIFO先⼊先出&#xff0c;只不过队列中存放的内容是消息(message).消息可以⾮常简单,⽐如只包含⽂本字符串,JSON等,也可以很复杂,⽐如内嵌对象 RabbitMQ是MQ的一种实现,是Rabbit 企业下的⼀个消息队列产…...

Golang学习路线

以下是一条学习Golang&#xff08;Go语言&#xff09;的路线&#xff1a; 一、基础入门 1. 环境搭建 安装Go编译器&#xff0c;在官网&#xff08;https://golang.org/dl/&#xff09;下载适合操作系统的安装包并配置好环境变量。 2. 语法学习学习变量、数据类型&#xff08…...

Flink从ck拉起任务脚本

#!/bin/bashAPP_NAME"orderTest"CHECKPOINT_BASE_PATH"hdfs:///jobs/flink/checkpoints/aaa-test/"is_running$(yarn application -list | grep -w "$APP_NAME" | grep -c "RUNNING")if [ $is_running -gt 0 ]; thenecho "应用程…...

GADBench Revisiting and Benchmarking Supervised Graph Anomaly Detection

Neurips 23 推荐指数&#xff1a; #paper/⭐⭐⭐ 领域&#xff1a;图异常检测 胡言乱语&#xff1a; neurips 的benchmark模块的文章总能给人一些启发性的理解&#xff0c;这篇的insight真有意思。个人感兴趣的地方会加粗。此外&#xff0c;这篇文章和腾讯AIlab合作&#xff…...

某象异形滑块99%准确率方案

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 该文章模型已经上线ocr识别网站,欢迎测试!!,地址:https://yxlocr.windy-rain.cn/ocr/slider/6 所谓的顶象异形滑块,是指没有采用常规的缺口,使用各种形状的…...

CDN绕过学习

1.什么是CDN&#xff1f; CDN就是分布在各个地区的服务器&#xff0c;这些服务器储存着数据的副本。 哪些服务器比较接近你&#xff0c;当你发起请求时&#xff0c;提前就会快速为你提供服务。 总结来说就是&#xff1a; 其实就是用来加速访问的&#xff0c;以及缓解压力&a…...

SpringBoot日常:redission的接入使用和源码解析

文章目录 一、简介二、集成redissionpom文件redission 配置文件application.yml文件启动类 三、JAVA 操作案例字符串操作哈希操作列表操作集合操作有序集合操作布隆过滤器操作分布式锁操作 四、源码解析 一、简介 Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格…...

npm包管理深度探索:从基础到进阶全面教程!

目录 一、npm概述1、npm简介&#xff08;1&#xff09;什么是npm&#xff1f;&#xff08;2&#xff09;npm的核心功能&#xff08;3&#xff09;npm的工作原理&#xff08;4&#xff09;npm的优势&#xff08;5&#xff09;npm的局限性&#xff08;6&#xff09;总结 2、npm的…...

最新免费GPT4O和Midjourney

一、什么是GPT4O&#xff1f; GPT-4 是 OpenAI 研发的大型语言模型。它具有强大的语言理解和生成能力&#xff0c;在自然语言处理等诸多领域有着广泛的应用和表现。 二、什么是Midjourney&#xff1f; Midjourney 是一款人工智能图像生成工具。它可以根据用户输入的描述或提…...

python操作OpenAI教程

python操作OpenAI pip install -U openai代码&#xff1a; from openai import OpenAI# 解决请求超时问题 import os os.environ["http_proxy"] "http://localhost:7890" os.environ["https_proxy"] "http://localhost:7890"# 需要…...

如何版本REST API:综合指南

目录 总则什么是REST API版本控制?为什么API版本控制很重要?如何对REST API进行版本控制 理解API契约评估需求选择版本控制策略沟通变化保持向后兼容性详细文档记录REST API版本控制最佳实践REST API版本控制常见问题:REST API版本控制总则 版本化REST API对于确保软件应用…...

Docker 环境下 Nginx 监控实战:使用 Prometheus 实现 Nginx 性能监控的完整部署指南

Docker 环境下 Nginx 监控实战&#xff1a;使用 Prometheus 实现 Nginx 性能监控的完整部署指南 文章目录 Docker 环境下 Nginx 监控实战&#xff1a;使用 Prometheus 实现 Nginx 性能监控的完整部署指南一 查看模块是否安装二 配置 status 访问端点三 Docker 部署 nginx-prome…...

网络安全-IPv4和IPv6的区别

1. 2409:8c20:6:1135:0:ff:b027:210d。 这是一个IPv6地址。IPv6&#xff08;互联网协议版本6&#xff09;是用于标识网络中的设备的一种协议&#xff0c;它可以提供比IPv4更大的地址空间。这个地址由八组十六进制数字组成&#xff0c;每组之间用冒号分隔。IPv6地址通常用于替代…...

【移动端】事件基础

一、移动端事件分类 移动端事件主要分为以下几类&#xff1a; 1. 触摸事件&#xff08;Touch Events&#xff09; 触摸事件是移动设备特有的事件&#xff0c;用来处理用户通过触摸屏幕进行的操作。主要的触摸事件有&#xff1a; touchstart&#xff1a;手指触摸屏幕时触发。…...

软件测试比赛-学习

一、环境配置 二、浏览器适配 //1.设置浏览器的位置,google浏览器位置是默认且固定在电脑里的//2.设置浏览器驱动的位置,C:\Users\27743\AppData\Local\Google\Chrome\ApplicationSystem.setProperty("webdriver.chrome.driver", "C:\\Users\\27743\\AppData\\…...

力扣LeetCode-链表中的循环与递归使用

标题做题的时候发现循环与递归的使用差别&#xff1a; 看两道题&#xff1a; 两道题都是不知道链表有多长&#xff0c;所以需要用到循环&#xff0c;用到循环就可以把整个过程分成多个循环体&#xff0c;就是每一次循环要执行的内容。 反转链表&#xff1a; 把null–>1…...

AFSim仿真系统 --- 系统简解_08 传感器与特征

传感器与特征 传感器是平台的一部分&#xff0c;为拥有该平台提供了探测其他平台及其组成部分的能力。 特征是平台的一种属性&#xff0c;用于确定特定传感器是否能够探测到特征所拥有的平台。 以下是用于探测平台的一些特征属性列表&#xff1a; 声学红外光学雷达 AFSIM …...