Qtgui编程基础

Qt简介 ( 框架5.9.8版本 )

Qt是源代码级的跨平台一次编写到处编译.一次开发的Qt应用程序可以移值到不同平台.

Qt体系架构

  1. Qt的整个设计都是以单根继承为主这跟java相同.所谓单根继承就是说所有的Qt类都有一个共同的祖先都是QObject
  2. QObject类后面有三个大的子类分别负责不同的功能它们是:
    1. QApplicaton:类管理图形用户界面应用程序和控制台程序的控制流和主要设置
    2. QWidget:是所有用户界面对象的基类,负责管理图形界面
    3. QLayout:负责管理所有图形界面的摆放方式(Qt布局)

(1)图形用户界面: QtGUI

(2)Qt核心库: QtCore

(3)Qt网络编程: QtNetwork

Qt体系架构图

QApplication类

Qt应用程序中,首先在main函数中创建QApplication对象,QApplication对象负责图像用户界面应用程序的控制流和主设置,通过调用该对象的exec()函数,进入事件循环处理,对来自窗口系统或其他的事件进行处理和调度,直到收到exit()或quit()结束。对于任何GUI应用,都有一个QApplication实例;对于非GUI应用,应该使用QCoreApplication。

基础窗口部件QWidget

QWidget类是Qt中其他所有用户界面窗口类的基类,包括QComboBox、QDialog,QDialogButtonBox,QDockWidget,QFocusFrame,QFrame,QGLWidget,QGroupBox, QLineEdit、QMainWindow等,它接收鼠标键盘消息,并在屏幕上绘制自己。每个QWidget实例按照Z序显示,子QWidget覆盖父QWidget。没有嵌入到父QWidget的QWidget称为Window(窗体)。通常一个Window包含一个边框和标题栏。

QApplication对象一般要定义一个主widget部件。Widgets是一种控件,也是一种容器,可以包含其他控件,任何widget都可以是任何widget的子对象

Ctrl+shift+s: 保存所有文件

qmake工程文件: 自动编译

工程文件里包含了qmake建立你的应用程序(或者库,插件)所需要的所有信息。你的工程所需的资源通常通过一系列的声明语句来描述,而简单的控制结构,可以实现在不同的平台和环境下,执行不同的编译流程

qmake工程文件是以.pro为扩展名

  1. 标签类 :QLabel

                  QLabel ::setPixmap

  1. 按钮类:QPushButton

                  QPushButton ::setIcon

                  QPushButton :: setIconSize

                  QPushButton :: setFocusPolicy

  1. 编辑框类 :QLineEdit

QPalette 调色板

  1. 调色板类:QPalette

setColor(QPalette::Background,Qt::black);

   //设置背景色

setBrush(QPalette::Background,QBrush(QPixmap("img/mainwindow.png")));

//用笔刷设置背景图片

qss--样式

绝对位置方式

  1. 这种方式是通过QWidge提供的setGeometry()函数来设置子窗口部件大小和在父窗口的位置
  2. 但是绝对位置方式缺点是:如果父窗口大小发生改变,子窗口部件无法做出相应变化

setGeometry()函数

  1. 指定子部件在父窗体中所处的位置和大小

void QWidget::setGeometry ( int x, int y, int w, int h )

参数说明:

x:表示子部件在父窗体行的位置

y:表示子部件在父窗体列的位置

w:表示子部件宽度

h:表示子部件的高度

QMessageBox类

QMessageBox类提供了一个有一条简短消息、一个图标和一些按钮的模式对话框。 消息框用于提供情报信息并且问一些简单的问题。

qss:

1.可以统一更改标签,按钮等的样式表

行内样式优先级高于qss

qss运用步骤

  1. 手动在rsource中创建 login.qss文件
  2. 添加到资源目录中
  3. 书写qss代码,将标签按钮等的样式表统一
  4. 运行qss代码

Qt槽函数

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

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

相关文章

51单片机基础8——单片机控制超声波模块

超声波模块的使用 51单片机控制超声波模块1. 软硬件条件2. 超声波控制原理2.1 超声波测距原理2.2 超声波模块工作原理 3. 接线4. 代码实现 51单片机控制超声波模块 1. 软硬件条件 单片机型号:STC89C52RC开发环境:KEIL4烧录软件:stc-isp超声…

进程的初步认识

目录 一、硬件方面介绍 1.冯诺依曼体系结构 2.存储分级 二、软件 方面 1.操作系统是一款进行管理的软件,它可以管理硬件也可以管理软件 2.操作系统如何管理? 三、进程 1.概念 总结 四、linux中对进程的管理 1.task_ struct内容分类 2.查看进…

C语言 -- 深入理解指针(一)

C语言 -- 深入理解指针(一) 1.内存和地址1.1 内存1.2 究竟该如何理解编址 2. 指针变量和地址2.1 取地址操作符(&)​2.2 指针变量和解引用操作符(*)​​2.2.1 指针变量2.2.2 如何拆解指针类型2.2.3 解引…

Vue2和Vue3的区别Vue3的组合式API

一、Vue2和Vue3的区别 1、创建方式的不同: (1)、vue2:是一个构造函数,通过该构造函数创建一个Vue实例 new Vue({})(2)、Vue3:是一个对象。并通过该对象的createApp()方法,创建一个vue实例。 Vue…

【React】React18 Hooks之useState

目录 useState案例1(直接修改状态)案例2(函数式更新)案例3(受控表单绑定)注意事项1:set函数不会改变正在运行的代码的状态注意事项2:set函数自动批量处理注意事项3:在下次…

C++ 多态篇

文章目录 1. 多态的概念和实现1.1 概念1.2 实现1.2.1 协变1.2.2 析构函数1.2.3 子类虚函数不加virtual 2. C11 final和override3.1 final3.2 override 3. 函数重载、重写与隐藏4. 多态的原理5. 抽象类6.单继承和多继承的虚表6.1 单继承6.2 多继承 7. 菱形继承的虚表(了解)7.1 菱…

springboot三层架构详细讲解

目录 springBoot三层架构0.简介1.各层架构1.1 Controller层1.2 Service层1.3 ServiceImpl1.4 Mapper1.5 Entity1.6 Mapper.xml 2.各层之间的联系2.1 Controller 与 Service2.2 Service 与 ServiceImpl2.3 Service 与 Mapper2.4 Mapper 与 Mapper.xml2.5 Service 与 Entity2.6 C…

论文阅读--Simple Baselines for Image Restoration

这篇文章是 2022 ECCV 的一篇文章,是旷视科技的一篇文章,针对图像恢复任务各种网络结构进行了梳理,最后总结出一种非常简单却高效的网络结构,这个网络结构甚至不需要非线性激活函数。 文章一开始就提到,虽然在图像复原…

【MYSQL】事务隔离级别以及InnerDB底层实现

事务隔离级别 读未提交(Read Uncommitted) 允许事务读取其他事务未提交的数据,可能会导致脏读。 读已提交(Read Committed) 一个事务只能看见已经提交的事务所做的更改,可以避免脏读,但可能…

【C++:默认成员函数初始化列表】

构造函数 特点 没有返回值支持函数重载对象实例化时,编译器自动调用作用不是构造,而是初始化函数名与类名相同无参函数和全缺省的函数,不用传参就能调用的函数叫做默认构造函数 构造函数是一个特殊的成员函数 注:无参构造函数在实…

星辰宇宙动态页面vue版,超好看的前端页面。附源码与应用教程(若依)

本代码的html版本,来源自“山羊の前端小窝”作者,我对此进行了vue版本转换以及相关应用。特此与大家一起分享~ 1、直接上效果图: 带文字版:文字呼吸式缩放。 纯净版: 默认展示效果: 缩放与旋转后&#xf…

简单的手动实现spring中的自动装配案例

简简单单的实现一个spring中的自动装配和容器管理的小骚操作。 1,创建AutoSetBean.java 使用injectBeans静态方法,可以扫描指定包下的所有带MyInject注解的字段,如果在beans的Map中存在这个字段的实例化类,则执行装配。 import…

【UE5.1 角色练习】13-枪械射击——拿出与收起武器

目录 效果 步骤 一、安装射击武器 二、拿武器和收武器 效果 步骤 一、安装射击武器 1. 在虚幻商城中将“FPS Weapon Bundle”添加到工程中,由于我们使用的是5.1版本,我们可以先将该资产放入UE4工程中,然后迁移到5.1版本的工程 2. 打开角…

alphazero学习

AlphaGoZero是AlphaGo算法的升级版本。不需要像训练AlphaGo那样,不需要用人类棋局这些先验知识训练,用MCTS自我博弈产生实时动态产生训练样本。用MCTS来创建训练集,然后训练nnet建模的策略网络和价值网络。就是用MCTSPlayer产生的数据来训练和…

Spring与Quartz整合

Quartz框架是一个轻量级的任务调度框架,它提供了许多内置的功能,包括:支持作业的调度、集群调度、持久化、任务持久化、任务依赖、优先级、并发控制、失败重试等。同时也支持自定义作业类型和触发器类型。与Spring整合步骤如下: …

深入解析.[datastore@cyberfear.com].mkp勒索病毒:威胁与防范

引言 在数字化时代,网络安全问题日益严峻,其中勒索病毒(Ransomware)作为一种极具破坏性的恶意软件,严重威胁着个人用户和企业机构的数据安全。.[ datastorecyberfear.com].mkp勒索病毒便是这一领域中的一颗“毒瘤”&am…

2.5 C#视觉程序开发实例1----IO_Manager实现脉冲输出控制

2.5 C#视觉程序开发实例1----IO_Manager实现脉冲输出控制 1 目标效果视频 目标效果展示 IO_Manager 2 信号输出流程说明 为了防止线程不同步导致输出信号没有被输出, 尽量使用一个输出队列来进行输出的管理 3 IO_Manager中添加内容 3.0 添加两个类 1 Out_Sta…

【课程总结】Day13(下):人脸识别和MTCNN模型

前言 在上一章课程【课程总结】Day13(上):使用YOLO进行目标检测,我们了解到目标检测有两种策略,一种是以YOLO为代表的策略:特征提取→切片→分类回归;另外一种是以MTCNN为代表的策略:先图像切片→特征提取→分类和回归。因此,本章内容将深入了解MTCNN模型,包括:MTC…

Windows 11文件资源管理器选项卡的4个高级用法,肯定有你喜欢的

作为一个每天使用文件资源管理器来管理我的工作流程的人,选项卡帮助我为处于不同完成阶段的工作创建了不同的文件夹。以下是我使用选项卡提高工作效率的最佳技巧。 打开和关闭选项卡 假设你的计算机上安装了Windows 11的最新更新,请按Ctrl+E打开文件资源管理器。在我发现“…

STM32智能家居掌上屏实战:从WiFi连接到MQTT通信,打造你的家庭物联网网关

摘要: 本文深入探讨一种基于STM32的智能家居掌上屏设计方案,详细阐述其硬件架构、软件设计以及通信协议等关键技术细节。该方案利用WiFi构建局域网,实现与各类传感器、执行器的便捷交互,并通过TFT彩屏提供直观的控制和数据展示,旨…