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

news2024/11/15 21:37:18

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

结论

温故而知新。

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

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

相关文章

分享禁止Win10更新的两种方法

深恶痛绝 Windows更新简直就是毒瘤,总是在某些不需要的时候提示更新,而且关闭服务后总有办法重启。老是关不掉。 如果每次都是正常更新,好像也没啥所谓,但是总有那么一两次会蓝屏、黑屏、开不了机…… 52出品 下面是吾爱社区找…

设计模式(二)-创建者模式(2-0)-简单工厂模式

一、简单工厂模式定义 客户端不需要关注创建实例的过程。于是需要通过工厂模式,要把创建对象过程和使用对象进行分离。所以客户端只要使用对象即可,而创建对象过程由一种类来负责,该类称为工厂类。 由于创建实例的方式是在静态方法里实现的…

数睿通2.0数据接入、数据开发、系统权限、集群监控全面升级

引言 数睿通 2.0 数据中台迎来了11月份的更新,感谢大家的支持,本次更新主要包括以下内容: 数据库支持 MongoDB数据接入支持 MongoDB,支持自定义 SQL 采集,支持停止运行中的任务数据生产支持 FlinkJar 任务&#xff0…

线性变换功能块S_RTI工程上的主要应用

西门子S_RTI模拟量转换功能块算法公式和代码介绍请参考下面文章链接: PLC模拟量输出 模拟量转换FC S_RTI-CSDN博客文章浏览阅读5.3k次,点赞2次,收藏11次。1、本文主要展示西门子博途模拟量输出转换的几种方法, 方法1:先展示下自编FC:计算公式如下:intput intput Real IS…

OS 进程同步

基本概念 定义:把异步环境下的一组并发进程因直接制约而相互发送消息、相互合作、相互等待,使得各进程按一定的速度执行的过程,称为进程同步 协作进程:具有同步关系的一组并发进程 进程同步机制的主要任务:在执行次…

Linux调试器:gdb的使用

我们知道在Visual Studio2022中,我们可以对编好的代码进行调试来分析dug的位置,那Linux环境下如何进行程序的调试呢?那就是使用Linux调试器:gdb。 目录 1.背景 2. 开始使用 1.背景 程序的发布方式有两种,debug模式…

mysql的行列互转

mysql的行列互转 多行转多列思路实现代码 多列转多行思路代码 多行转多列 多行转多列,就是数据库中存在的多条具有一定相同值的行数据,通过提取相同值在列头展示来实现行数据转为列数据,一般提取的值为枚举值。 思路 转换前表样式 -> 转…

从 0 开始手写一个 Mybatis 框架,三步搞定!

MyBatis框架的核心功能其实不难,无非就是动态代理和jdbc的操作,难的是写出来可扩展,高内聚,低耦合的规范的代码。本文完成的Mybatis功能比较简单,代码还有许多需要改进的地方,大家可以结合Mybatis源码去动手…

打开游戏提示xapofx1_5.dll丢失如何修复?xapofx1_5.dll缺失的修复教程分享

xapofx1_5.dll是一个重要的Windows系统文件,它主要负责处理图形渲染和多媒体功能。如果在计算机中找不到xapofx1_5.dll,可能会导致程序无法正常运行。下面是关于xapofx1_5.dll丢失的4个修复方法以及xapofx1_5.dll的作用和丢失原因的介绍。 一、xapofx1_…

MySQL 教程 1.2

上期教程网友笔记整理 MySQL 重置密码 如果你忘记 MySQL 密码,可以通过修改 my.cnf 文件添加 skip-grant-tables 来重置密码,步骤如下: 1、打开 my.cnf 配置文件,找到 [mysqld] ,然后在该行下面添加以下参数&#x…

基于STM32CubeMX和keil采用RTC时钟周期唤醒和闹钟实现LED与BEEP周期开关

文章目录 前言1. RTC概念1.1 RTC的时钟信号源1.2 预分频器1.3 实时时钟与日历数据1.4 周期性自动唤醒1.5 可编程闹钟 2. RTC相关中断3. STM32CubeMX配置3.1 时钟配置3.2 引脚配置3.3 RTC配置3.3.1 模式选择3.3.2 RTC基本参数配置3.3 中断配置 4. 代码编写总结 前言 RTC的功能有…

数据结构与算法之美学习笔记:22 | 哈希算法(下):哈希算法在分布式系统中有哪些应用?

目录 前言应用五:负载均衡应用六:数据分片应用七:分布式存储解答开篇 & 内容小结 前言 本节课程思维导图 今天,我们再来看剩余三种应用:负载均衡、数据分片、分布式存储。你可能已经发现,这三个应用都…

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

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

在线生成含logo的彩色二维码工具

具体请前往:在线二维码生成工具--可生成指定大小和颜色的彩色二维码图片,并支持Logo

arcgis属性表十进制度转换成度分秒格式--转换坐标注记法

1、有一组点数据,如下: 2、为其添加XY坐标,如下: 打开属性表,可得到对应点的XY的十进制度坐标,如下: 3、将十进制度转换成度分秒格式,如下,使用转换坐标注记法工具&#…

支付、结算、对账流程

1、支付过程概览 2、微信支付流程 以微信支付为例,用户使用北京银行,商户收款银行为工行银行,列出机构名 用户在商户处选购商品或服务,选择使用微信支付进行付款。用户打开微信支付,输入支付密码或进行指纹识别等身份验证。微信支付系统将支付请求发送给北京银行。北京银行…

Java Web 实战 20 - HTTP PK HTTPS ? HTTPS 大获全胜 ?

HTTP VS HTTPS 一 . HTTPS1.1 臭名昭著的运营商劫持1.2 加密是什么 ?1.3 HTTPS 的加密过程对称加密非对称加密引入 "证书" 机制 1.4 HTTP VS HTTPS Hello , 大家好 , 好久没有更新 JavaWeb 模块的内容了 . 博主这篇文章主要给大家讲解一下 HTTPS 以及与 HTTP 的区别…

“新KG”视点 | 知识图谱与大语言模型协同模式探究

OpenKG 大模型专辑 导读 知识图谱和大型语言模型都是用来表示和处理知识的手段。大模型补足了理解语言的能力,知识图谱则丰富了表示知识的方式,两者的深度结合必将为人工智能提供更为全面、可靠、可控的知识处理方法。在这一背景下,OpenKG组织…

laravel-admin导出excel全部,表中无id列导出失败

laravel-admin导出excel时,导出全部数据,但是表中没有id字段,然后就无法导出excel; 就直接显示 一开始我也很着急,弄了半天还是不行,然后重写还是有问题 最后发现底层代码排序是按照id排序的orderBy(id, a…

贝锐蒲公英助力智慧楼宇,实现自控系统远程运维、数据实时监测

在智慧楼宇系统中,存在着多套不同的系统,比如:智能照明控制、智能空调控制、智能安防监控等。在实际应用中,除了需要打通楼内各个系统实现智能联动,如何实现各地多楼宇的数据实时互通构建智慧楼宇生态系统也是需要解决…