Qtgui编程基础

news2024/11/19 14:44:38

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.coloradmin.cn/o/1899869.html

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

相关文章

厌倦了Nvim、vim等命令行编辑器?来看看新血脉....

是否厌倦了那几款烂大街的命令行风格编辑器?今天就来给各位换换血,介绍几个新成员。 让我们深入了解这些文本编辑器的主要功能和优点: 1. Ox Editor:优雅的新秀 Ox Editor是一款新兴的终端文本编辑器,以其简洁和优雅…

汽车IVI中控开发入门及进阶(三十三):i.MX linux开发之开发板

前言: 大部分物料/芯片,不管MCU 还是SoC,都会有原厂提供配套开发板,有这样一个使用原型,在遇到问题时或者进行开发时可以使用。 i.MX 8QuadXPlus MEK board: 1、要测试display显示器,可使用i.MX mini SAS将“LVDS1_CH0”端口连接到LVDS到HDMI适配器的cable。 2、要测试…

接口参数化--代码支撑参数

如果测试的用例里传动态参数,就需要把列出规则,然后在代码里运用前期是把动态参数都列出了,现在需要运用 步骤: 先excel表中定义规范,将请求参数里的时间戳定义规则(规范也需要提前写出) 建立…

库表设计(基础)-实体与设计关系

实体关系分析 1 实体关系是指系统事务之间的联系。 2 实体关系需要双向分析。 3 实体关系决定表关系。 实体关系的种类 1 一对一 2 一对多 3 多对多 举例: 上面关系如下: 班级和学生 : 1:N 学生和课程:N : N 学生和学籍档案&a…

【MotionCap】pycharm 远程在wsl2 ubuntu20.04中root的miniconda3环境

pycharm wsl2 链接到pycharmsbin 都能看到内容,/root 下内容赋予了zhangbin 所有,pycharm还是看不到/root 下内容。sudo 安装了miniconda3 引发了这些问题 由于是在 root 用户安装的miniconda3 所以安装路径在/root/miniconda3 里 这导致了环境也是root用户的,会触发告警 WA…

温州网站建设方案及报价

随着互联网的发展,网站建设已经成为企业推广和营销的重要手段。温州作为中国经济发达地区之一,各行各业企业纷纷意识到网站建设的重要性,纷纷加大网站建设工作的投入。那么,温州网站建设方案及报价是怎样的呢?下面我们…

昇思25天学习打卡营第10天|ResNet50迁移学习

文章目录 昇思MindSpore应用实践基于MindSpore的ResNet50迁移学习1、迁移学习简介2、加载ImageNet数据集数据集可视化 3、ResNet50 模型4、模型训练固定特征进行训练 5、模型推理 Reference 昇思MindSpore应用实践 本系列文章主要用于记录昇思25天学习打卡营的学习心得。 基于…

AI革命:RAG技术引领未来智能

AI革命:RAG技术引领未来智能 在人工智能的浪潮中,一种名为RAG(Retrieval-Augmented Generation)的技术正在悄然改变我们的世界。这种技术通过整合外部知识库,极大地增强了大型语言模型(LLM)的性能,为智能助手、聊天机器人等应用带来了革命性的提升。 1 突破性的RAG技…

迈威通信本安Wi-Fi 6工业无线AP系列,促进井下无线全覆盖

在现代化的工业生产中,无线通信技术的应用日益广泛。特别是对于矿井等复杂环境,传统的有线通信方式往往面临着布线困难、维护成本高、灵活性差等问题。为了解决这些难题,迈威通信推出了本安Wi-Fi 6工业无线AP系列,以其卓越的性能和…

《C++20设计模式》外观模式

文章目录 一、前言二、实现1、UML类图2、实现 一、前言 一句话总结外观模式:简化接口,或者简化流程。🙂 相关代码可以在这里,如有帮助给个star!AidenYuanDev/design_patterns_in_modern_Cpp_20 二、实现 原来需要很…

idea MarketPlace插件找不到

一、背景 好久没用idea了,打开项目后没有lombok,安装lombok插件时发现idea MarketPlace插件市场找不到,需要重新配置代理源,在外网访问时通过代理服务进行连接 二、操作 ### File-->setting 快捷键 Ctrl Alt S 远端源地…

怎么做外贸推广:10个详细教程和工具

1. 介绍 1.1 什么是外贸推广 外贸推广指的是将产品或服务推广到国际市场的过程。它的主要目的是吸引海外客户,增加销售额,并扩大企业的全球影响力。外贸推广不仅仅是销售产品,它还包括品牌建设、市场研究和客户关系管理。 谷歌外贸推广案例…

实战干货,企业在数字化转型中如何通过最佳实践落地BI报表?

引言:上一篇文章我们提到:通过9大步骤,帮助企业在数字化转型中搭建数据分析的报表体系!在实际中的落地过程,通过实施服务的哪些最佳实践可以确保落地效果,达到项目预期目标,给客户带来实质价值&…

MySQL索引教程(01):创建索引

文章目录 MySQL 创建索引索引介绍MySQL CREATE INDEX 语法MySQL 索引类型MySQL CREATE INDEX 实例结论 MySQL 创建索引 对于一个具有大量数据行的表,如果你根据某个查询条件检索数据时很慢,可能是因为你没有在检索条件相关的列上创建索引。 索引类似于…

小红书矩阵系统源码:赋能内容创作与电商营销的创新工具

在内容驱动的电商时代,小红书凭借其独特的社区氛围和用户基础,成为品牌营销和个人创作者不可忽视的平台。小红书矩阵系统源码,作为支撑这一平台的核心技术,提供了一系列的功能和优势,助力用户在小红书生态中实现更高效…

2024年APMCM亚太杯中文赛A题——飞行器外形的优化问题

飞行器外形的优化问题 解题思路问题一第一问结果第一问代码 完整答案 本篇文章为大家分享2024年APMCM亚太杯中文赛A题——飞行器外形的优化问题的解题思路以及第一问的完整求解代码与结果,四问的完整解答请看文章最后! 解题思路 飞行器是在大气层内或大…

zxing-cpp+OpenCV根据字符串生成条形码

编译构建 需要使用到 CMake、Git、GCC 或 MSVC。 github 链接:https://github.com/zxing-cpp/zxing-cpp 编译之前请确保: 确保安装了 CMake 版本 3.15 或更高版本。 确保安装了与 C17 兼容的编译器(最低VS 2019 16.8 / gcc 7 / clang 5)。 编译构建…

力扣习题--找不同

目录 前言 题目和解析 1、找不同 2、 思路和解析 总结 前言 本系列的所有习题均来自于力扣网站LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台 题目和解析 1、找不同 给定两个字符串 s 和 t ,它们只包含小写字母。 字符串 t…

Andriod安装termux并换源

问题汇总 Error: The repository ‘https://mirrors.tuna.tsinghua.edu.cn/termux/termux-package-24 stable Release’ does not have a Release file. 更换源(这里使用的是清华大学源) 打开文件 nano $PREFIX/etc/apt/sources.list手动修改 deb htt…

Java中关于构造代码块和静态代码块的解析

构造代码块 特点:优先于构造方法执行,每new一次,就会执行一次 public class Person {public Person(){System.out.println("我是无参构造方法");}{System.out.println("我是构造代码块"); //构造代码块} }public class Test {public stati…