【Qt开发流程之】窗口部件

qt类关系图

创建Qt项目时,发现提供的窗体默认 基类有:QMainWindowQDialogQWidget这三种。
之后,你会发现,这3中窗体在UI交互中,用的也是最多的。
以下是Qt类关系图:
在这里插入图片描述

基础窗口控件QWidget

由上图可以看到,QWidget是所用用户界面对象的基类,因此被称为基础窗口部件。

窗口、子部件、窗口类型

窗口及窗口类型链接: https://blog.csdn.net/MrHHHHHH/article/details/134091196
子部件是设置父对象,在别的窗口显示的部件。
根据QWidget,默认构造可以看出:

explicit QWidget(QWidget* parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags());

当不设置第一个参数时,它就是窗口,如果设置了,就是子部件。
第二个参数,设置窗体Flags类型。可以设置多个窗体类型枚举值进行位或操作。
如:

   QWidget* pW = new QWidget(0, Qt::Dialog | Qt::WindowShadeButtonHint);
   pW->show();

设置pW为对话框类型并设置有阴影。
在这里插入图片描述

   QLabel* pL = new QLabel("helloworld", 0, Qt::SplashScreen | Qt::WindowStaysOnTopHint);
   pL->show();

设置pL为欢迎窗口类型,并置顶,显示如下:
在这里插入图片描述
以上pL显示后,右上角没有关闭按钮,如何关闭呢?
在输出器里点击下图框选按钮进行关闭。
在这里插入图片描述

窗体布局

索引里输入Window and Dialog Widgets 可查看相关介绍。
在这里插入图片描述

根据以上可以看出:窗体布局分两种:
包含框架函数: x(), y(), frameGeometry(), pos(), and move().
不包含框架函数: geometry(), width(), height(), rect(), and size().
resize()设置是不包含边框的窗口大小。

程序调试及快捷键

Qt快捷键操作链接: https://blog.csdn.net/MrHHHHHH/article/details/131039023
QtCreator 查看类帮助文档链接: https://blog.csdn.net/MrHHHHHH/article/details/133976674
在这里插入图片描述
在这里插入图片描述
F9或者点击行号左侧空白区域添加断点
在这里插入图片描述

对话框QDialog

QDialog是所有对话框窗口类的基类。对话框窗口是一个经常用于完成短小任务或者和用户进行简单交互的顶层窗口。

对话框分类

根据运行对话框是否还可以与其他窗口交互,被分为:模态的非模态的
设置模态链接:链接: https://blog.csdn.net/MrHHHHHH/article/details/127865655

close()方法

只有当最后一个窗口调用close()方法时,程序才关闭,其他时候只是隐藏了窗口。

信号和槽

信号和槽使用链接:链接: https://blog.csdn.net/MrHHHHHH/article/details/133755793
Qt使用信号和槽机制完成对象之间的协作。
Qt的信号和槽是一种用于在Qt应用程序中进行事件处理和通信的机制。信号是一种特殊的函数,它们被一个对象(称为信号发射器)发出以表示某个事件已发生。槽是另一种函数,它们被用于响应信号并执行相应的操作。

通过将信号与槽连接起来,可以实现在应用程序中触发事件和响应事件的自动化。例如,当用户单击一个按钮时,该按钮可能会发出一个信号,您可以将这个信号连接到一个槽函数中,该函数将在发生这个事件时自动执行。

使用信号和槽,可以实现各种应用程序的功能,包括图形用户界面(GUI)应用程序、网络应用程序和多线程应用程序等。它可以帮助开发人员编写更加可靠和灵活的代码,并提高开发效率。

设计师使用信号和槽

流程如下:快捷键F4,可以点击编辑,添加自定义信号和槽
在这里插入图片描述

标准对话框

在索引输入Standard Dialogs Example ,可以看到相关介绍。

在这里插入图片描述

  1. 输入对话框
  2. 颜色对话框
  3. 字体对话框
  4. 文件对话框
  5. 信息提示框
    此外,还有日历选择对话框、进度框、向导、错误提示框等

其他窗口部件

QFrame类

QFrame类是所有带边框的部件的基类。
QFrame类是可以有边框的小部件的基类。QMenu使用它来将菜单“升起”到周围的屏幕之上。QProgressBar具有“凹陷”的外观。QLabel具有平面外观。这些小部件的边框可以进行更改。
在这里插入图片描述

QLabel类

【Qt控件之QLabel】用法及技巧:链接: https://blog.csdn.net/MrHHHHHH/article/details/133691441

QPushButton类

【Qt控件之QPushButton】使用及技巧:
链接: https://blog.csdn.net/MrHHHHHH/article/details/133692079

QLineEdit类

【Qt控件之QLineEdit、QPlainTextEdit 、QTextEdit 、QTextBrowser】使用及区别:
链接: https://blog.csdn.net/MrHHHHHH/article/details/133758536

QRadioButton类

【Qt控件之QRadioButton】使用及技巧
链接: https://blog.csdn.net/MrHHHHHH/article/details/133829311

结论

温故而知新。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Swin Transformer

Swin Transformer 简介 下采样的层级设计,能够逐渐增大感受野。采用window进行注意力计算,极大降低了内存消耗,避免了整张图像尺寸大小的qkv矩阵滑窗操作包括不重叠的 local window,和重叠的 cross-window。不重叠的local window…

volatile 无法保证原子性 案例展示

volatile 无法保证原子性 在 Java 中,原子性是指一个操作是不可中断的,要么都执行要么都不执行。 但是 volatile 修饰的变量,只是保证了从主内存加载到工作内存的值是最新的,并不能保证对变量的操作是原子性的 变量的写操作和读…

关于缓存和数据库一致性问题的深入研究

如何保证缓存和数据库一致性,这是一个老生常谈的话题了。 但很多人对这个问题,依旧有很多疑惑: 到底是更新缓存还是删缓存?到底选择先更新数据库,再删除缓存,还是先删除缓存,再更新数据库&…

Spring Boot中实现支付宝、微信和银联支付的功能

Spring Boot中实现支付宝、微信和银联支付的功能 在Spring Boot中实现支付宝、微信和银联支付的功能,通常需要使用它们各自的SDK(Software Development Kit)。以下是一个简单的示例代码,演示了如何在Spring Boot项目中集成支付宝…

操作系统:操作系统教程第六版(骆斌、葛季栋、费翔林)习题一计算机操作系统概述

目录 前言1. 思考题2. 应用题 前言 本系列文章是针对操作系统教程第六版(骆斌、葛季栋、费翔林)的习题解答,其中简答题部分为博主自己搜索整理的,错漏之处在所难免。应用题部分有答案为依据。 1. 思考题 (1&#xf…

vscode设置代码模板

一键生成vue3模板代码 效果演示 输入vue3 显示快捷键 按回车键 一键生成自定义模板 实现方法 进入用户代码片段设置 选择片段语言 vue.json输入自定义的代码片段 prefix是触发的内容,按自己的喜好来就行; body是模板代码,写入自己需要的…

java springboot 在测试类中声明临时Bean对象

上文 java springboot在当前测试类中添加临时属性 不影响application和其他范围 中 我们讲了怎么在测试类中设置临时属性 但是 如果我们想设置临时的Bean呢? 其实做过几个项目的人都会理解 我们很多功能 需要一些第三方bean才能完成 那么 我们可能存在需要用第三方b…

MySQL 的执行原理(四)

5.5. MySQL 的查询重写规则 对于一些执行起来十分耗费性能的语句,MySQL 还是依据一些规则,竭尽全力的把这个很糟糕的语句转换成某种可以比较高效执行的形式,这个过程也可以 被称作查询重写。 5.5.1. 条件化简 我们编写的查询语句的搜索条件…

SpringMVC总结

SpringMVC简介 简介 SpringMVC是一款基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称( spring-webmvc ),但它通常被称为“Spring MVC”。 调用流程 接收数…

清华 ChatGLM-6B 中文对话模型部署简易教程

本文目录 一、前言二、下载三、部署3.1 配置环境3.2 启动 demo 程序3.2.1 启动 cli_demo.py3.2.2 启动 web_demo.py 四、【最新】ChatGLM-6B-int4 版本教程4.1 下载4.2 配置环境4.3 启动 demo 程序 五、华为 CodeLab 免费 GPU 平台部署 ChatGLM-6B-int4(CPU版&#…

RabbitMQ消息的可靠性

RabbitMQ消息的可靠性 一 生产者的可靠性 生产者重试 有时候由于网络问题,会出现连接MQ失败的情况,可以配置重连机制 注意:SpringAMQP的重试机制是阻塞式的,重试等待的时候,当前线程会等待。 spring:rabbitmq:conne…

Blowfish在线加密解密调试校验工具

具体请前往:在线Blowfish加密解密工具

java游戏制作-拼图游戏

一.制作主界面 首先创建一个Java项目命名为puzzlegame。 再在src中创建一个包,用来制作主界面 代码: 结果: 二.设置界面 代码: 三.初始化界面 代码: 优化代码: 结果: 四.添加图片 先在Java项…

二叉搜索树的最近公共祖先

235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大&…

网络协议入门 笔记一

一、服务器和客户端及java的概念 JVM (Java Virtual Machine) : Java虚拟机,Java的跨平台:一次编译,到处运行,编译生成跟平台无关的字节码文件 (class文件),由对应平台的JVM解析字节码为机器指令 (010101)。 如下图所示&#xff0…

lv11 嵌入式开发 ARM指令集中(汇编指令集) 6

目录 1.指令 1.1 数据处理指令:数学运算、逻辑运算 1.1.1数据搬移指令MOV 、MVN 1.1.2立即数 1.1.3 加法指令 1.1.4 减法指令 1.1.5 逆向减法指令 1.1.6 乘法指令 1.1.7 与、或、非、异或、左移、右移指令 1.1.8 位清零指令 1.1.9 格式扩展 1.1.10 数据运算指令对条件位…

Ubuntu20.0中安装Gradle

下载Gradle到temp文件夹 wget https://services.gradle.org/distributions/gradle-8.3-bin.zip -P /tmp 然后解压文件到/opt/gradle目录 sudo unzip -d /opt/gradle /tmp/gradle-8.3.zip 配置Gradle环境变量 接下来我们会创建一个gradle.sh文件来保存Gradle的环境变量 sudo…

文心一言 VS 讯飞星火 VS chatgpt (138)-- 算法导论11.4 2题

二、用go语言,试写出HASH-DELETE 的伪代码;修改 HASH-INSERT,使之能处理特殊值DELETED。 文心一言: 首先,让我们定义一个基本的哈希表数据结构。这个结构将包括一个存储键值对的哈希表和一个存储已删除键值对的队列。我们可以用…

RobotFramework进阶之自定义的python模块(十四)

引言 RobotFramework自动化框架(以下简称RF)之前文章我们讲了通过import第三方的library(RequestsLibrary等),在实际项目中第三方的包并不能满足我们的需要,此时我们可自己编写python模块(.py文…

穷举法、回溯法、分支界限法解决旅行商(TSP)问题

文章目录 一、问题描述二、穷举法解决2.1 介绍2.2 代码 三、回溯法解决四、分支界限法4.1 介绍4.2 代码 一、问题描述 有一个旅行商由某城市出发,经过所有给定的 n n n 个城市后,再回到出发的城市。除了出发的城市外,其它城市只经过一回。这…