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

使用 Qt Designer 开发

         Qt Designer 是属于 Qt Creator 的 一个功能而已,Qt Designer 也叫 UI 设计师或者 UI 设计器,这都是指的同一 个东西而已。

一、在ui文件添加一个按钮

 1、新建一个项目

         项目名为 02_designer_example

构建系统可选择 CMake qmake, Qbs 对于 CMake 我们比较熟悉,用于生成 Makefile ,那么
qmake Qbs 也同样道理, qmake cmake 比较常用。我们需要选择 qmake
        这里默认选择的基类为 QMainWindow 。在 Base class 一项中我们还可以看到还有 QWidget
QWialog 这样的基类可以选择。 简单的来说,我们创建 的这个项目是基于 QMainWindow 类去开发的。默认勾选“ Generate form ”,意思是生成 ui 窗体 文件 mainwindow.ui 。为了学习方便,我们统一默认基类为 QMainWindow ,但是注意,在嵌入 式里一般不需要标题栏,状态栏等,所以常用的是 QWidget 基类。
        QMainWindow:主窗口类,主窗口具有主菜单栏、工具栏和状态栏。类似于一般的应用程
序的主窗口。如果你想做个嵌套的窗口程序开发的软件,不妨选择这个 QMainWindow
        QWidget:是可视界面类的基类,也就是说 QMainWindow 类也是由 QWidget 继承封装而来。
所以 QWidget 要比 QMainWindow 功能少一些。
         QDialog :对话框类,建立一个对话框界面。比较少使用此项作为基类。一般 QMainWindow 和 QWidget 作为基类的居多。 注因为 QWidget 不带窗口标题栏等,嵌入式里最好 QWidget

2、按钮添加

将这个 PushButton text 属性(文本属性)改为“关闭程序”。我们 要设计点击这个按钮将关闭这个窗口,关闭这个程序。

3、在ui文件里连接信号与槽

UI 设计器里有两种方法可以连接信号与槽。
信号:是一个对象发出的信号
槽:是当这个对象发出这个信号时,对应连接的槽就发被执行或者触发。
UI 设计器里信号与槽的连接方法一:
在主窗体的上面部分,我们可以看到一些小小的按钮,如下图框框部分。用鼠标放在这些按钮上面可以查看这个按钮是什么作用。信号槽连接的按钮也在上面。
点击信号槽连接的按钮如下,如下图①处,点击进入信号槽连接模式(若想退出信号槽连 接模式,则点击①处左边的按钮),进入信号与槽的连接模式后,将鼠标选中我们的“关闭程序” 按钮,按住按钮,然后用鼠标向外拖动,如②处。此时就会出现信号槽连接的符号。
按如下图步骤选择,左边的“关闭程序” pushButton 按钮的信号,可以看到一个对象的信号可以有多种。右边的 QMainWindow 的槽函数,如果有其他对象,右边不一定只有 MainWidnow 的槽函数(槽),也有可能是其他对象的槽。我们选择按钮的 clicked() 信号,将其连接 MainWindow 对象的 close() 槽。这样就完成了信号与槽的连接,非常简单。我们也可以预知这个信号与槽的功能,当“关闭程序”pushButton 发出了 clicked() 信号(也就是单击信号)。 这个信号由“关闭程序”pushButton 被单击时发出。它就会触发 MainWindow close() 。进而 使整个程序关闭。MainWindow close() 就是退出关闭程序,退出程序的意思。
完成信号槽连接,如下图。要想返回编辑部件模式点击如下图标注位置的按钮。下图就是 信号与槽连接的图示了。在编辑部件模式下我们是看不见的,只有信号槽模式才能看见这样的 图示。
UI 设计器里信号与槽的连接方法二:
选中“关闭程序” pushButton 按钮,然后右键,如下图。选择“转到槽”。
点击“转到槽”后,弹出下面的窗口,这一步是先让我们选择信号。按如下图选择。我们还发现这个 clicked() 信号并不是 pushButton 的,而是 QAbstactButton 的。只是 pusbButton 继承了 QAbstracButton ,同时把这个信号也继承了下来。除此之外我们还看到其 他信号也是不是属于 pushButton 的,也是被继承下来了。所以我们在 C++ 基础部分学过的继承。在 Qt 里的作用表现的淋漓尽致!根本不用重写 pushButton clicked() 事件。 pushButton 只需要 继承父类的 clicked() 事件即可!
点击确认 后,就会跳转到槽函数里,这个代码由 Qt Creator 自动生成。
同时在 mainwindow.h 里声明了这个槽函数。

找到 on_pushButton_clicked 这个槽函数里。在这个槽数里写上 this->close();调用 close() 方法关闭整个程序。

4、编译及运行创建的 UI 项目

关闭程序

相关文章:

使用 Qt Designer 开发

Qt Designer 是属于 Qt Creator 的 一个功能而已,Qt Designer 也叫 UI 设计师或者 UI 设计器,这都是指的同一 个东西而已。 一、在ui文件添加一个按钮 1、新建一个项目 项目名为 02_designer_example 构建系统可选择 CMake , qmake, Qbs 对…...

第7天-Python+PyEcharts实现股票分时图实战教程

分时图是金融领域常用的可视化形式,能够清晰展示价格随时间变化的趋势。本教程将手把手教你用PyEcharts库实现专业级分时图效果。 一、环境准备 bash 复制 下载 pip install pyecharts # 核心可视化库 pip install pandas # 数据处理支持 二、基础分时图实现 1. 模拟…...

Zenmap代理情况下无法扫描ip

原因是开了代理会报错 error “only ethernet devices can be used for raw scans on Windows” 在扫描参数后加 -sT -Pn,但会导致结果太多 例如:nmap -sT -T4 -A -v -Pn 10.44.2.0/24 如果你只是想找没人用的IP,你不需要搞复杂的原始层扫描&…...

JAVA打飞机游戏设计与实现(论文+源代码)【源码+文档+部署】

1 绪论 1.1 手机软件现状 在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行。但是传统手机存在以下弊端: 1. 传统手机出厂时均由硬件厂商固化…...

C++学习:六个月从基础到就业——多线程编程:std::thread基础

C学习:六个月从基础到就业——多线程编程:std::thread基础 本文是我C学习之旅系列的第五十四篇技术文章,也是第四阶段"并发与高级主题"的第一篇,介绍C11引入的多线程编程基础知识。查看完整系列目录了解更多内容。 引言…...

深入理解指针(一)

1.内存和地址 2.指针变量和地址 3.指针变量类型的意义 4.指针运算 1. 内存和地址 1.1 内存 在讲内存和地址之前,为了大家更好的理解举了这么个例子: 假如有一栋教学楼,刚好你今天在这栋楼的某一个课室上课,已知这栋楼有50个…...

添加currentSchema后,该模式下表报不存在(APP)

文章目录 环境文档用途详细信息相关文档 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5.7 文档用途 解决程序URL添加currentSchema后,访问该模式下的表,报错信息com.highgo.jdbc.util.PSQLException: ERROR…...

Python数据整合与转换全攻略

在大数据时代,企业平均使用16个不同数据源,但数据利用率不足30%。数据整合与转换能力已成为数据工程师的核心竞争力。本文将通过电商订单数据整合实战,系统讲解Python数据整合与转换的核心技术栈。 一、数据整合的三大挑战与应对策略 1. 数…...

ArcGIS操作16:添加经纬网

1、单击视图 > 数据框属性 2、单击格网选项卡 > 新建格网按钮 3、创建经纬网 4、经纬网标注间隔需要自己多次尝试,选择一个合适的值,这里江苏省选择50 5、继续设置合适的参数 6、点击应用,预览是否合适(不合适再新建一个经…...

BioID技术:探索蛋白质相互作用的新方法

在细胞的复杂环境中,蛋白质并非孤立地执行其功能,而是通过与其他蛋白质相互协作来完成各种生物学过程。理解蛋白质相互作用网络对于揭示细胞机制和疾病发生发展具有至关重要的意义。近年来,一种名为BioID(Biotin Identification&a…...

Java 大视界——Java大数据在智慧交通智能停车诱导系统中的数据融合与实时更新

智慧交通的快速发展对城市停车资源的高效利用提出了更高要求,而智能停车诱导系统作为缓解“停车难”问题的核心手段,亟需解决多源数据融合、实时状态更新及高并发访问等挑战。Java凭借其稳定的大数据生态、卓越的实时计算能力及跨平台兼容性,…...

【Redisson】快速实现分布式锁

大家好,我是jstart千语。之前给大家分享过使用redis的set nx ex命令实现分布式锁。但手动的实现方式不仅麻烦,而且不好管理。实现出来的锁也是不可重入的,不可重试的。那么在要求比较高的系统中,就不太适用了。虽然说重入问题可以…...

内核常见面试问题汇总

1、Linux 中主要有哪几种内核锁?它们各自的特点和适用场景是什么? 自旋锁 自旋锁是一种忙等待锁,当一个线程试图获取一个被占用的自旋锁时,他会一直循环在那里,不断地检查锁是否可用,而不会进入睡眠状态。 自旋锁的优点这是在锁被持有的时间很短的情况下,性能非常高,…...

laravel中如何使用Validator::make定义一个变量是 ,必传的,json格式字符串

在 Laravel 中,使用 Validator::make 定义一个变量为必传且为JSON 格式字符串时,可以通过以下方式实现: use Illuminate\Support\Facades\Validator;$validator Validator::make($request->all(), [your_field > required|json, // 必…...

【全解析】EN18031标准下的NMM网络监控机制

上一篇文章我们了解了RLM机制如何为设备抵御DoS攻击保驾护航,今天我们将目光转向 EN18031 标准中的另一个重要防线——NMM(Network Monitoring Mechanism)网络监控机制。 NMM - 1规定,如果设备是网络设备,应提供网络监…...

浏览器开发随笔

浏览器多进程架构(Chrome) ----------------------------- | Browser Process | |-----------------------------| | UI 线程、主控、导航、安全策略 | -----------------------------| | |↓ ↓ ↓ -------…...

漏洞类型与攻击技术

1.1 SQL注入 1.1.1 SQL注入简介与原理 SQL注入是通过用户输入的数据中插入恶意SQL代码,绕过应用程序对数据库的合法操作,进而窃取、篡改或删除数据的攻击方式。核心原理是应用程序未对用户输入进行严格过滤,导致攻击者可以操控SQL语句逻辑。 1.1.2 联合查询注入与报…...

day018-磁盘管理-案例

文章目录 1. 磁盘分区1.1 手动磁盘分区1.2 重装系统,保留分区1.2.1 选择从光盘启动1.2.2 保留系统盘分区1.2.3 挂载数据盘 2. 物理服务器使用流程3. swap3.1 增加swap3.2 关闭swap 4. 故障案例(红帽类系统)4.1 root密码忘记,重新设…...

spark调度系统核心组件SparkContext、DAGSchedul、TaskScheduler介绍

目录 1. SparkContext2.DAGScheduler3. TaskScheduler4. 协作关系Spark调度系统的核心组件主要有SparkContext、DAGScheduler和TaskScheduler SparkContext介绍 1. SparkContext 1、资源申请: SparkContext是Spark应用程序与集群管理器(如Standalone模式下的Master、Yarn模…...

python数据可视化第三章数值计算基础

numpy库 数组创建 import numpy as np #创建n维数组array a np.array([1, 2, 3]) b np.array([4, 5, 6]) #可以直接运算 print(a 1) # [2 3 4] print(ab) # [5 7 9] #数组的维度:ndim print(a.ndim) #1 #数组的形状:shape print(a.shape) #(3,) 一维…...

std::chrono类的简单使用实例及分析

author: hjjdebug date: 2025年 05月 20日 星期二 14:36:17 CST descrip: std::chrono类的简单使用实例及分析 文章目录 1.实例代码:2. 代码分析:2.1 auto t1 std::chrono::high_resolution_clock::now();2.1.1 什么是 system_clock2.1.2 什么是 chrono::time_point?2.1.3 什…...

MongoDB 学习(三)Redis 与 MongoDB 的区别

目录 一、NoSQL 数据库与关系型数据库的优缺点二、Redis 与 MongoDB 的区别 MongoDB 和 Redis 都是 NoSQL 数据库,采用 结构型数据存储,而非 MySQL、Oracle 等则属于传统的 关系型数据库。 一、NoSQL 数据库与关系型数据库的优缺点 关系型数据库&#…...

Java双指针法:原地移除数组元素

Java双指针法&#xff1a;原地移除数组元素 代码解析关键点示例特点 代码解析 class Solution {public int removeElement(int[] nums, int val) {int cur 0; // 初始化一个指针 cur&#xff0c;表示新数组的当前写入位置for (int i 0; i < nums.length; i) { // 遍历原数…...

第二届帕鲁杯时空交织的密语

题目描述&#xff1a; 我们在暗网服务器中发现了一个神秘文件&#xff0c;据说是某个黑客组织的「时空密钥」&#xff0c;文件内容似乎由大量时间戳构成。情报显示&#xff0c;只有将时间维度与二进制低语结合才能解开秘密。线索隐藏在时空的起点与终点之间。 解压得到timestr…...

【神经网络与深度学习】扩散模型之原理解释

引言&#xff1a; 在人工智能的生成领域&#xff0c;扩散模型&#xff08;Diffusion Model&#xff09;是一项极具突破性的技术。它不仅能够生成高质量的图像&#xff0c;还可以应用于音频、3D建模等领域。扩散模型的核心思想来源于物理扩散现象&#xff0c;其工作方式类似于从…...

Map更简洁的编码构建

Map的链式构建需求 jdk1.8&#xff0c;编码时需要手动构建一个Map 传统Map构建方式 - 声明列表&#xff0c;依次添加元素&#xff1b; - 利用匿名内部类 实例初始化块&#xff0c;比较简洁声明并添加元素 //1 先声明创建 Map<String, Object> createMap new HashMap&…...

深挖navigator.webdriver浏览器自动化检测的底层分析

本文将带你深入探索并实践如何从底层层面破解浏览器 navigator.webdriver 检测&#xff0c;结合爬虫代理等策略伪装、多线程加速等技术&#xff0c;在豆瓣图书搜索页面上批量采集图书评分、简介、作者等信息。文章面向初学者&#xff0c;采用分步教程型结构&#xff0c;并增设「…...

业务流程和数据结构之间如何对应

业务流程和数据结构之间存在着紧密的对应关系&#xff0c;它们相互依赖、相互影响。以下是它们之间的对应关系以及如何进行对应&#xff1a; 1. 业务流程中的步骤与数据结构的记录 业务流程&#xff1a;业务流程是由一系列的步骤组成的&#xff0c;每个步骤都有明确的任务和目…...

浜掕仈缃戝ぇ鍘傞潰璇曪細璋㈤鏈虹殑鐖嗙瑧姹傝亴涔嬫梾

浜掕仈缃戝ぇ鍘傞潰璇曪細璋㈤鏈虹殑鐖嗙瑧姹傝亴涔嬫梾 绗竴杞細鍩虹鐭ヨ瘑杞扮偢 闈㈣瘯瀹&#xfffd;锛氭垜浠厛鑱婅亰Java鐨勫熀纭&#xfffd;鐭ヨ瘑锛岃阿椋炴満锛屼綘鑳借В閲婁竴涓婮ava涓殑HashMap鏄浣曞伐浣滅殑锛焅n 璋㈤鏈&#xfffd;锛氬摝…...

关于Linux服务器数字取证一

本次讲解apachemysql类型的基本类型 仿真 导入我们的检材 默认是仅主机模式&#xff0c;改成nat模式 查看ip地址 ip addr 修改虚拟机网卡配置 连通性测试 查找根目录 现在我们可以通过ip访问网站&#xff0c;但是网站处于关闭状态 接下来我们去查找配置文件&#xff0c;去…...

电商运营数据分析指南之流量指标

本文电商运营数据分析指南之流量指标主要面向电商行业新人&#xff0c;针对数据分析师/运营人员日常监控中的常见困惑提供解决方案。适合刚接触电商数据监控缺乏思路&#xff0c;或对电商数据指标感兴趣希望系统学习的读者。 电商数据分析如同航海指南针&#xff0c;精准的数据…...

C++初阶-迭代器失效和vector::insert函数的最终实现

目录 1.vector::insert函数 1.1问题分析 1.2vector::insert函数的最终实现 1.3vector::insert函数的分析 2.第二种迭代器失效 3.第三种迭代器失效 4.迭代器失效deepseek的回答 1. 迭代器失效的原因 2. 不同容器的迭代器失效情况 &#xff08;1&#xff09;std::vecto…...

DeepSeek的走红,会不会带动芯片市场新一轮增长?

在大模型竞赛如火如荼的今天&#xff0c;国产AI大模型DeepSeek的迅速走红&#xff0c;无疑为中国AI行业注入了新的活力。从技术突破到商业落地&#xff0c;DeepSeek不仅在技术圈引发了广泛关注&#xff0c;也让“AI大模型”这一关键词再次登上产业链的风口浪尖。但一个更值得深…...

小土堆pytorch--神经网路-卷积层池化层

神经网路-卷积层&池化层 一级目录二级目录三级目录 1. 神经网路-卷积层2. 神经网路最大池化的应用 一级目录 二级目录 三级目录 1. 神经网路-卷积层 在PyTorch中&#xff0c;torch.nn.Conv2d函数定义了一个二维卷积层&#xff0c;其常用参数包括&#xff1a; in_channel…...

什么叫生成式人工智能?职业技能的范式转移与能力重构

当人们谈论人工智能时&#xff0c;常常混淆其不同类型与功能。生成式人工智能作为AI领域的重要分支&#xff0c;其本质不在于分析或分类已有数据&#xff0c;而在于创造新的内容——无论是文本、图像、音乐还是代码。理解这一技术的内涵&#xff0c;不仅关乎技术认知&#xff0…...

集星獭 | 重塑集成体验:新版编排重构仿真电商订单数据入库

概要介绍 新版服务编排以可视化模式驱动电商订单入库流程升级&#xff0c;实现订单、客户、库存、发票、发货等环节的自动化处理。流程中通过循环节点、判断逻辑与数据查询的编排&#xff0c;完成了低代码构建业务逻辑&#xff0c;极大提升订单处理效率与业务响应速度。 背景…...

小白成长之路-Linux磁盘管理(一)

文章目录 前言一、磁盘介绍1、磁盘的物理结构1.1硬盘结构1.2磁头数、磁道、柱面、扇区 2.CHS编号2.1磁道编号规则2.3扇区编号规则2.3通过CHS计算硬盘容量 3、磁盘存储划分3.1第一个扇区存储的数据3.2硬盘分区 4.开机流程5、要点6、磁盘存储数据的形式 二、Linux文件系统1、根文…...

【Linux】第二十四章 管理网络安全

1. 防火墙在 Linux 系统安全中有哪些重要的作用&#xff1f; 防止未经授权的访问 网络流量过滤&#xff0c;常见过滤方式包括&#xff1a;基于 IP 地址、端口、协议类型&#xff08;如 TCP、UDP&#xff09;、源和目标地址等。限制流量速率、阻止来自单个IP或多个IP的高频请求保…...

【解决】SSH 远程失败之路由配置问题

开发平台&#xff1a;RedHat 8   一、问题描述 使用 WindTerm SSH 远程连接 192.168.88.211 虚拟主机&#xff0c;无法连接。   二、问题追溯 VMWare 虚拟机配置 虚拟网卡IPVMNet 模式应用网卡1&#xff08;eth0&#xff09;192.168.88.11/24VMNet 8服务网卡2&#xff08;…...

中级网络工程师知识点9

1.在Linux中&#xff0c;负责配置DNS的文件是/etc/resolv.conf&#xff0c;包含了主机的域名搜索顺序和DNS服务器的地址 2.主域名服务器在接收到域名请求后&#xff0c;首先查询的是本地缓存 3.自动专用地址&#xff1a;169.254.X.X/16 4.FTP默认20端口&#xff0c;传输文件…...

网页前端开发(基础)

前端开发三件客&#xff1a;HTML&#xff0c;CSS&#xff0c;JavaScript。 web标准&#xff0c;也称网页标准&#xff0c;由3个组成部分。1.HTML,管理页面的元素和内容。2.CSS&#xff0c;负责网页的表现&#xff08;页面元素的外观&#xff0c;位置等页面样式。如&#xff1a;…...

Git命令使用全攻略:从创建分支到合并的完整流程

Git命令使用全攻略&#xff1a;从创建分支到合并的完整流程 引言一、初始化项目与基础配置1.1 克隆远程仓库1.2 查看当前分支状态 二、创建与管理分支2.1 从main分支创建新功能分支2.2 查看分支列表2.3 提交代码到新分支2.4 推送分支到GitHub 三、版本发布与标签管理3.1 创建轻…...

边缘智能与量子计算双轮驱动:IVX 开启实时 AI 开发新维度

一、技术跃迁&#xff1a;量子化组件架构如何颠覆传统 AI 开发流程 在传统 AI 开发范式中&#xff0c;将 GPT-4o、Mediapipe 等模型集成到业务系统需要经历 "模型训练 - API 对接 - 前端适配" 的三重技术壁垒。开发团队需同时掌握 TensorFlow、Flask、React 等技术栈…...

对冲策略加仓止损盈思路

外汇交易中的对冲策略&#xff0c;重点在于加仓和盈利出局的策略。该策略通过多种方法来管理头寸&#xff0c;旨在最大化盈利并控制风险。 加仓策略 金字塔加仓法 金字塔加仓法是一种逐步增加头寸的方法。在初始头寸盈利后&#xff0c;以较小的手数逐步增加头寸。这种方法可以在…...

ERP生产环境索引重建:高风险操作还是性能良药?何时动手,如何操刀?

ERP系统是企业运营的核心,其数据库性能至关重要。索引作为提升查询效率的关键,其维护(尤其是重建)操作却常常让DBA和运维工程师们如履薄冰。本文将深入探讨在生产ERP环境中重建索引的潜在风险、必要性评估、最佳实践以及不同数据库的注意事项,旨在帮助技术人员做出明智决策…...

PyTorch 之 torch.distributions.Categorical 详解

PyTorch 之 torch.distributions.Categorical 详解 PyTorch 之 torch.distributions.Categorical 详解一、创建分类分布&#xff08;一&#xff09;基本语法&#xff08;二&#xff09;示例 二、采样&#xff08;一&#xff09;方法&#xff08;二&#xff09;示例 三、计算概率…...

杰发科技AC7840——如何把结构体数据写到Dflash中

1. 结构体数据被存放在Pflash中 正常情况下&#xff0c;可以看到全局变量的结构体数据被存放在Pflash中 数字部分存在RAM中 2. 最小编程单位 8字节编程&#xff0c;因此如果结构体存放在Dfalsh中&#xff0c;进行写操作&#xff0c;需要写8字节的倍数 第一种办法&#xff1a;…...

vue路由小案例

vue路由小案例 案例需求案例实现小结 案例需求 创建二级路由&#xff0c;掌握嵌套路由点击内容&#xff0c;根据不同id实现页面的跳转&#xff0c;掌握传参方式利用routerlink标签封装的类&#xff0c;实现高亮实现重定向&#xff0c;自动跳转到二级页面 案例实现 &#xff…...

链表面试题9之环形链表进阶

那么上一题我们已经知道了双指针的变法以及拓展的用法&#xff0c;那么这里我们直接难度升级。 想回去复习的这里放个链接&#xff1a;链表的面试题8之环形链表-CSDN博客 题目链接&#xff1a;142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; 我们来看这道题目主要…...

CentOS 7上BIND9配置DNS服务器指南

详细说明如何在 CentOS 7 上配置 BIND9 扮演这四种不同的 DNS 角色&#xff0c;包括配置文件示例和注意事项。 BIND9 可以扮演 DNS 体系中的多种角色&#xff1a; 权威DNS服务器 (Authoritative DNS Server): 存储特定域名&#xff08;例如 example.com&#xff09;的官方DNS记…...