2.21号qt
1.QMainWindow中常用的类
继承于QMainWindow类,原因该类提供了QWidget没有提供的成员函数。
菜单栏、工具栏、状态栏、浮动窗口(铆接部件)、核心部件
1.1 菜单栏 QMenuBar
//创建菜单栏 QMenuBar 最多只能有一个
QMenuBar *mbar = menuBar();
//将菜单栏放入窗口中
this->setMenuBar(mbar);
//往菜单栏里增加菜单
QMenu *file = mbar->addMenu("文件");
QMenu *edit = mbar->addMenu("编辑");
//往菜单中增加菜单项
file->addAction("新建");
//增加分隔符
file->addSeparator();
file->addAction("打开");
1.2 工具栏 QToolBar
//创建工具栏 QToolBar 可以有多个
QToolBar *tbar = new QToolBar(this);
//将工具栏放入窗口中 设置停靠区域
this->addToolBar(Qt::LeftToolBarArea,tbar);
//后期设置 只允许左右停靠
tbar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
//不允许浮动
tbar->setFloatable(false);
//往工具栏中增加工具项
tbar->addAction("欢迎");
//实例化一个按钮
QPushButton *btn = new QPushButton(this);
btn->setText("编辑");
//将按钮放入工具栏中
tbar->addWidget(btn);
1.3 状态栏 QStatusBar
//创建状态栏 QStatusBar 最多只能有一个
QStatusBar *sbar = statusBar();
//将状态栏放入窗口中
this->setStatusBar(sbar);
//实例化一个标签
QLabel *lab = new QLabel("问题",this);
//将标签放入状态栏中
//sbar->addWidget(lab);//默认从左边显示
sbar->addPermanentWidget(lab); //默认从右边显示
1.4 浮动窗口 QDockWidget
//创建浮动窗口 QDockWidget 可以有多个
QDockWidget *dock = new QDockWidget("浮动窗口",this);
//将浮动窗口放入界面中
this->addDockWidget(Qt::BottomDockWidgetArea,dock);
//后期设置 只允许左右停靠
dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
//创建中心部件 最多只能有一个
QTextEdit *text_edit = new QTextEdit(this);
//将中心部件放入窗口中
this->setCentralWidget(text_edit);
2.ui界面文件
1> ui界面文件是在项目工程文件的Forms文件夹下(XXX.ui)
2> ui界面上可以通过ui指针访问到ui界面上的所有组件。
3.信号与槽
qt以引为傲的核心机制:对象树、信号与槽、事件机制
1> 信号和槽是qt的核心机制之一,可以实现多个组件之间的通信。
2> 信号:信号函数。信号定义在类体的signals权限下,信号函数是一个不完整的函数,只需要声明,不需要实现。
3> 槽:槽函数。槽定义在类体的slots权限下,槽函数是一个完整的函数,既要有声明,也要有定义。该函数可以当成普通函数使用。
4> 任意一个组件都有系统提供的信号和槽。
3.1 带有信号和槽的类体定义
signals: //信号权限,该权限下函数 都是信号
void my_signal(); //只需要声明 不需要实现
public slots: //槽函数权限 ,该权限下函数 都是槽函数
void my_slot(); //需要声明 也要实现
3.2 信号和槽的连接方式
3.2.1
基于ui界面上的连接,在ui界面下的信号和槽区,将系统提供的信号和槽进行连接。
该连接,无需手动书写信号函数、槽函数、连接函数
3.2.2
基于ui界面上的连接,在组件上,右击转到槽,选中要发射的信号,在槽函数中处理相关逻辑代码。
该连接,无需手动书写信号函数、连接函数
3.2.3
手动连接信号和槽,基于qt4版本的连接,该连接是不友好的连接。
需要使用connect连接函数进行连接,在QObject类中
[static] QMetaObject::Connection //函数的返回值类型 静态成员函数
QObject::connect( //函数名
const QObject *sender, //发送者 组件的指针
const char *signal, //发送的信号 信号的函数 应该用函数指针接收 不能用char *接收 所以需要使用宏函数转换
const QObject *receiver, //接受者 组件的指针
const char *method, // 槽函数 应该用函数指针接收 不能用char *接收 所以需要使用宏函数转换
)信号宏函数 SIGNAL()
槽宏函数 SLOT()
3.2.4
手动连接信号和槽,基于qt5版本的连接,该连接就是友好的连接
需要使用connect连接函数进行连接,在QObject类中
[static] QMetaObject::Connection //函数返回值类 静态函数
QObject::connect( //函数名
const QObject *sender, //信号的发送者 组件的指针
PointerToMemberFunction signal, //信号函数 可以直接传函数名 原因是函数指针接收
const QObject *receiver, //信号的接收者 组件的指针
PointerToMemberFunction method, //槽函数 可以直接传函数名 原因是函数指针接收
)
3.2.5
手动连接信号和功能函数,如果信号一旦被触发,则自动执行功能函数中的内容。
功能函数:全局函数、lambda表达式
[static] QMetaObject::Connection
QObject::connect(
const QObject *sender,
PointerToMemberFunction signal,
Functor functor//功能函数
)
3.3 自定义的信号
自定义的信号,定义在signals权限下,是一个不完整的函数,只要声明,不要实现。
自定义 的信号,需要手动触发,使用emit关键字进行发射信号,如果自定义的信号一旦被发射,则会自动执行对应的槽函数处理
3.4 断开连接
disconnect()和connect()函数的参数一样
作业
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);connect(ui->btn1,SIGNAL(clicked()),this,SLOT(close()));connect(ui->logbtn,&QPushButton::clicked,this,&Widget::my_slot1);}Widget::~Widget()
{delete ui;
}void Widget::my_slot1()
{QString uname;QString pword;uname=ui->ed1->text();pword=ui->ed2->text();if(uname=="admin" && pword=="123456"){qDebug() << "登录成功" ;this->close();}else{qDebug() << "登录失败";ui->ed2->clear();}}
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
2.21号qt
1.QMainWindow中常用的类 继承于QMainWindow类,原因该类提供了QWidget没有提供的成员函数。 菜单栏、工具栏、状态栏、浮动窗口(铆接部件)、核心部件 1.1 菜单栏 QMenuBar //创建菜单栏 QMenuBar 最多只能有一个 QMenuBar *mbar menu…...
![](https://www.ngui.cc/images/no-images.jpg)
什么是MVVM?MVC、MVP与MVVM模式的区别?
MVVM(Model-View-ViewModel)是一种软件架构模式,用于将用户界面(View)与业务逻辑(Model)分离,并通过ViewModel来连接两者。MVVM的目标是实现可测试性、可维护性和可复用性。 MVC&am…...
![](https://img-blog.csdnimg.cn/direct/938c240e52fb464ea550193e5db49452.png)
ElementUI组件的安装和使用
Element UI 是一款基于 Vue 2.0 的桌面端组件库,主要用于快速构建网站的前端部分。它提供了丰富的组件,如按钮、输入框、表格、标签页等,以及一些布局元素,如布局容器、分割线等。Element UI 的设计风格简洁,易于上手&…...
![](https://img-blog.csdnimg.cn/direct/227183e314864c209cbc5c373b0af5b6.png)
Laravel01 课程介绍以及Laravel环境搭建
Laravel01 课程介绍 1. Laravel2. mac开发环境搭建(通过Homebrew)3. 创建一个项目 1. Laravel 公司中面临着PHP项目与Java项目并行,所以需要我写PHP的项目,公司用的框架就是Laravel,所以在B站上找了一门课学习。 Laravel中文文档地址 https…...
![](https://img-blog.csdnimg.cn/direct/b9175b4a2af448d1a80b2cb795429bb5.png)
面试redis篇-03缓存击穿
原理 缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好这时间点对这个key有大量的并发请求过来,这些并发的请求可能会瞬间把DB压垮 解决方案一:互斥锁 解决方案二:逻辑过期 提问与回答 面试官 :什么是缓存击穿 ? 怎么解决 ? 回答: 缓存击穿的意思…...
![](https://www.ngui.cc/images/no-images.jpg)
k8s容器以及基础设施优化
1.硬件系统选型:宿主机通用配置16c/32GB/4网卡队列 2.os优化:单机支持百万tcp并发,/etc/sysctl.conf,/etc/security/limits.conf 3.k8s&容器层优化:性能优化initContainer 4.kube-dns优化:增大--cache-size,设置…...
![](https://img-blog.csdnimg.cn/direct/9a6a5848035245b4a6cb235450f35e1c.png)
蓝桥杯备赛系列——倒计时50天!
蓝桥杯备赛系列 倒计时50天! 前缀和和差分 知识点 **前缀和数组:**假设原数组用a[i]表示,前缀和数组用sum[i]表示,那么sum[i]表示的是原数组前i项之和,注意一般用前缀和数组时,原数组a[i]的有效下标是从…...
![](https://img-blog.csdnimg.cn/direct/e6784bd5aea948388e4512051e43b357.png)
jenkins配置ssh的时候测试连接出现Algorithm negotiation fail
背景:当jenkins升级后,同时ssh插件也升级,测试ssh连接的时候 出现的问题: com.jcraft.jsch.JSchAlgoNegoFailException: Algorithm negotiation fail: algorithmName"server_host_key" jschProposal"ecdsa-sha2-n…...
![](https://img-blog.csdnimg.cn/38f316959b534b30bd52a8a084ce5f9a.png)
思维模型整合
思维模型整合 4P--- 4C思考模型能力圈模型 4P— 4C思考模型 在竞争激烈的今天,每个赛道都有众多可以为客户提供相同价值的对手,而赛道中的佼佼者之所以能打败大部分人,可能并不是他们能比别人更能讨好大众,而是因为在这个赛道它有…...
![](https://img-blog.csdnimg.cn/direct/fc2c121cebc04bd3ad4ee8c99f4d771f.png)
代理模式笔记
代理模式 代理模式代理模式的应用场景先理解什么是代理,再理解动静态举例举例所用代码 动静态的区别静态代理动态代理 动态代理的优点代理模式与装饰者模式的区别 代理模式 代理模式在设计模式中是7种结构型模式中的一种,而代理模式有分动态代理&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
手机中有哪些逆向进化的功能
手机中有哪些逆向进化的功能?逆向进化是指明明很优秀的很方便的功能,却因为成本或者其他工业原因莫名其妙地给取消了。 逆向进化1:可拆卸电池-变为不可拆卸电池。 智能手机为了追求轻薄等原因,所以移除了可拆卸电池功能。将电池…...
![](https://www.ngui.cc/images/no-images.jpg)
LeetCode24.两两交换链表中的节点
参考链接:代码随想录:LeetCode24.两两交换链表中的节点 我这里使用了3个变量进行暴力交换,简单快捷!但是有一点想不明白,return这里只能写dh->next,写返回head就结果不对了!但是后面又想明白了ÿ…...
![](https://img-blog.csdnimg.cn/direct/80e8b10ab1fb45d3a7a9463643f8fed8.png)
Eureka注册中心(黑马学习笔记)
Eureka注册中心 假如我们的服务提供者user-service部署了多个实例,如图: 大家思考几个问题: order-service在发起远程调用的时候,该如何得知user-service实例的ip地址和端口? 有多个user-service实例地址,…...
![](https://img-blog.csdnimg.cn/direct/6f565380c05447b2a0fc7deb32d8a8ee.png)
unity-firebase-Analytics分析库对接后数据不显示原因,及最终解决方法
自己记录一下unity对接了 FirebaseAnalytics.unitypackage(基于 firebase_unity_sdk_10.3.0 版本) 库后,数据不显示的原因及最终显示解决方法: 1. 代码问题(有可能是代码写的问题,正确的代码如下ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
JWT(JSON Web Token)原理、应用与安全性分析
随着互联网的快速发展,Web应用的安全性越来越受到重视。在众多的安全认证技术中,JSON Web Token(JWT)凭借其简洁、自包含和传输安全的特点,被广泛应用于Web应用的用户身份验证和信息交换。 一、JWT的原理 JWT是一个开…...
![](https://img-blog.csdnimg.cn/direct/0c5a73dc96f54cd68c851f93c5926afe.png)
Redis 缓存(Cache)
什么是缓存 缓存(cache)是计算机中的一个经典的概念在很多场景中都会涉及到。 核心思路就是把一些常用的数据放到触手可及(访问速度更快)的地方,方便随时读取。 这里所说的“触手可及”是个相对的概念 我们知道,对于硬件的访问速度来说,通常…...
![](https://img-blog.csdnimg.cn/direct/d11d747f9e7b47dfa5e6d000858a9836.png)
ChatGPT回答模式
你发现了吗,ChatGPT的回答总是遵循这些类型方式。 目录 1.解释模式 2.类比模式 3.列举模式 4.限制模式 5.转换模式 6.增改模式 7.对比模式 8.翻译模式 9.模拟模式 10.推理模式 1.解释模式 ChatGPT 在回答问题或提供信息时,不仅仅给出…...
![](https://img-blog.csdnimg.cn/direct/740338b4e6a441d6bf043d422d2f46c7.png)
戏曲文化苑|戏曲文化苑小程序|基于微信小程序的戏曲文化苑系统设计与实现(源码+数据库+文档)
戏曲文化苑小程序目录 目录 基于微信小程序的戏曲文化苑系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 (1)戏曲管理 (2)公告信息管理 (3)公告类型管理…...
![](https://img-blog.csdnimg.cn/direct/f507f2ab96064af18c0cba9148477664.png)
Mysql数据库主从集群从库Slave因为RelayLog过多过大引起服务器硬盘爆满生产事故实战解决
Mysql数据库主从集群从库slave因为RelayLog过多过大引起从库服务器硬盘爆满生产事故实战解决 一、MySQL数据库主从集群概念 MySQL数据库主从集群是一种高可用性和读写分离的数据库架构,它基于MySQL的复制(Replication)技术来同步数据。在主…...
![](https://img-blog.csdnimg.cn/direct/ca49e848a069447da65411d03d636ca1.png)
QT基本组件
四、基本组件 Designer 设计师(重点) Qt包含了一个Designer程序,用于通过可视化界面设计开发界面,保存文件格式为.ui(界面文件)。界面文件内部使用xml语法的标签式语言。 在Qt Creator中创建文件时…...
![](https://img-blog.csdnimg.cn/direct/633ec0f8797947b69144de44859f2666.png)
uniapp实现全局悬浮框
uniapp实现全局悬浮框(按钮,页面,图片自行设置) 可拖动 话不多说直接上干货 1,在components新建组件(省去了每个页面都要引用组件的麻烦) 2,实现代码 <template><view class"call-plate" :style"top: top px;left: left px;" touchmove&quo…...
![](https://img-blog.csdnimg.cn/direct/e1658f17113d4874a1e6adad74837c89.png)
C语言特殊函数
静态函数 背景知识:普通函数都是跨文件可见的,即在文件 a.c 中定义的函数可以在 b.c 中使用。 静态函数:只能在定义的文件内可见的函数,称为静态函数。 语法 staitc void f(void) // 在函数头前面增加关键字 static ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
全栈开发(TS,React,Vue, Java, 移动端flutter)接单
个人主页 https://hz.minicv.net/ 技术栈 前端:NextJS React VueJS 后端:NestJS Java 移动端:Flutter 其他:SpringCloud Redis Kafka Zookeeper 项目案例 微行简历( TS 全栈项目,一个极简的简历管理平…...
![](https://www.ngui.cc/images/no-images.jpg)
vue3使用百度地图
前情提要: 本文vue采用vue3框架,使用百度地图通过组件vue-baidu-map-3x: 组件官网:地图容器 | vue-baidu-map-3x 使用百度地图需要 申请百度地图AK秘钥 步骤:1.进入百度地图开放平台 | 百度地图API SDK | 地图开…...
![](https://www.ngui.cc/images/no-images.jpg)
docker 安装达梦dm8 包含lincese
1.加载达梦数据库docker镜像 dm_v8.1.1.66_x86_rh7_64_ent.tar为申请的镜像文件。 docker load -i dm_v8.1.1.66_x86_rh7_64_ent.tar 查看镜像 docker images 创建达梦数据库容器 执行创建命令: docker run -d -p 30236:5236 --restartalways --name dm8_test…...
![](https://img-blog.csdnimg.cn/direct/e4c5a6fc13d94f419bc3dd614aec839a.png)
golang入门介绍-1
今天开始发布关于go语言入门到实战内容,各位小伙伴准备好。 go介绍 Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。是由 Google 公司开发的一种静态强类型、编译型、并发型、并具有垃圾回收功能的编程语言。 Go 是…...
![](https://www.ngui.cc/images/no-images.jpg)
273.【华为OD机试真题】园区参观路径(动态规划-JavaPythonC++JS实现)
🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-园区参观路径二.解题思路三.题解代码Python题解…...
![](https://img-blog.csdnimg.cn/direct/99bba9ff12ec40f8a1c0c4e200b17ecf.png)
ChatGPT调教指南 | 咒语指南 | Prompts提示词教程(二)
在我们开始探索人工智能的世界时,了解如何与之有效沉浸交流是至关重要的。想象一下,你手中有一把钥匙,可以解锁与OpenAI的GPT模型沟通的无限可能。这把钥匙就是——正确的提示词(prompts)。无论你是AI领域的新手&#…...
![](https://img-blog.csdnimg.cn/direct/e475c3f163dd4c4f8503b86f1e00a3a9.png)
超市售货|超市售货管理小程序|基于微信小程序的超市售货管理系统设计与实现(源码+数据库+文档)
超市售货管理小程序目录 目录 基于微信小程序的超市售货管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 (1)商品管理 (2)出入库管理 (3)公告管理 …...
![](https://img-blog.csdnimg.cn/direct/34fb3ea70f8743f3ba62752350ccebc5.png)
流程图:理解、创建与优化的视觉工具
流程图:理解、创建与优化的视觉工具 引言 在日常生活和工作中,我们经常遇到需要描述一系列步骤或过程的情况。这些步骤可能是制作一杯咖啡、完成一个项目,或者是解决一个复杂的数学问题。流程图,作为一种强大的视觉工具…...
![](https://img-blog.csdnimg.cn/img_convert/5a446e858d10bc798e88a98acef41116.png)
音频网站建设/网上在哪里打广告最有效
证书管理(SQL Server 配置管理器)01/12/2021本文内容适用于:SQL Server(所有支持的版本) - 仅限 Windows本主题介绍如何在 SQL Server Always On 故障转移群集或可用性组拓扑上部署和管理证书。SSL/TLS 证书广泛用于保护对 SQL Server 的访问。 对于早期版本的 SQL …...
![](/images/no-images.jpg)
深圳 企业网站建设/网站优化排名公司哪家好
JavaScript面试题 1.JavaScript 中 undefined 和 not defined 的区别 JavaScript 未声明变量直接使用会抛出异常:var name is not defined 如果没有处理异常,代码就停止运行了 但是,使用typeof undeclared_variable并不会产生异常ÿ…...
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
wordpress 推广返利/今日重大新闻头条
题目链接: http://codeforces.com/problemset/problem/831/A 题目描述: 让你判断数列是不是符合题目描述的规律增长 解题思路: 我知道我的思路是对的, 但是肯定是不好的, 因为BUG特别难找 代码: #include …...
![](/images/no-images.jpg)
供应链管理专业研究生/seo技术培训班
如何设立短期目标 知道吗?那些成功人士极力反对的,以及权威人士大力阻止的,而我们又没有发现什么不好的事,或许就是我们苦苦追寻的“成功秘诀”。政府、专家、成功者经常像大人哄孩子一样。难道不是吗?“那是粑粑&…...
![](/images/no-images.jpg)
各大网站黑白几天/腾讯广告推广怎么做
创建一个存储过程create procedure porc () #存储过程名称porc begin select user from mysql.user; #sql语句 end;调用存储过程call porc();删除存储过程DROP PROCEDURE IF EXISTS porc;转载于:https://blog.51cto.com/quliren/1984097...
![](/images/no-images.jpg)
中山顺的网站建设/网站快照优化公司
8皇后问题(改编) 问题描述规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大。输入格式一个8*8的棋盘。输出格式所能得到的最大数字和样例输入1 2 3 4 5 6 7 89 10 11 12 13 14 15 1617 18 19 20 21 22…...