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

Qt平滑弹出页面

目标功能:

(1)按下btn,弹出绿色页面。

 (2)按下btn2,绿色页面隐藏。

 (3)按下左边余下的区域,绿色页面也隐藏。

(4)平滑地显示和隐藏

效果:

 

 form.h

#ifndef FORM_H
#define FORM_H#include <QWidget>namespace Ui {
class Form;
}class Form : public QWidget
{Q_OBJECTpublic:explicit Form(QWidget *parent = nullptr);~Form();private slots:void on_pushButton_clicked();private:Ui::Form *ui;
signals:void begin_move();
};#endif // FORM_H

 form.cpp

#include "form.h"
#include "ui_form.h"Form::Form(QWidget *parent) :QWidget(parent),ui(new Ui::Form)
{ui->setupUi(this);
}Form::~Form()
{delete ui;
}void Form::on_pushButton_clicked()
{emit begin_move();
}

 widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include "form.h"
#include <QPropertyAnimation>
#include <QMouseEvent>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();
protected:void mousePressEvent(QMouseEvent *event) override;bool eventFilter(QObject *obj,QEvent *event) override;
private slots:void on_pushButton_clicked();
private:Ui::Widget *ui;Form *f;QPropertyAnimation *animation,*animation1;bool flag;bool isShow;
};
#endif // WIDGET_H

widget.cpp 

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QEvent>#pragma execution_character_set("utf-8")
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);f=new Form(this);f->hide();flag=1;isShow=0;ui->pushButton_2->installEventFilter(this);connect(f,&Form::begin_move,this,[=](){if(isShow == 1){animation1->start();isShow=0;}});
}Widget::~Widget()
{delete ui;
}void Widget::mousePressEvent(QMouseEvent *event)
{if(event->button()==Qt::LeftButton){qDebug()<<"按下了鼠标左键";qDebug()<<event->pos();if(isShow == 1){animation1->start();isShow=0;}}
}bool Widget::eventFilter(QObject *obj, QEvent *event)
{if(obj==ui->pushButton_2){if(event->type() == QEvent::MouseButtonPress){qDebug()<<"按下按钮";QMouseEvent * me =static_cast<QMouseEvent *>(event);if(me->button() & Qt::LeftButton){qDebug()<<"按下左键";if(isShow == 1){animation1->start();isShow=0;}}return false;}}return QWidget::eventFilter(obj,event);
}void Widget::on_pushButton_clicked()
{if(flag==1){flag=0;f->resize(300,height());f->move(width(),0);f->show();animation = new QPropertyAnimation(f,"pos");animation->setDuration(1000);  //设置动画完成的时间长度animation->setStartValue(QPoint(width(),0)); //设置动画的开始值animation->setEndValue(QPoint(width()-f->width(),0)); //设置动画的结束值animation1 = new QPropertyAnimation(f,"pos");animation1->setDuration(1000);  //设置动画完成的时间长度animation1->setStartValue(QPoint(width()-f->width(),0)); //设置动画的开始值animation1->setEndValue(QPoint(width(),0)); //设置动画的结束值}animation->start(); //启动动画isShow=1;
}

 

相关文章:

Qt平滑弹出页面

目标功能&#xff1a; (1)按下btn&#xff0c;弹出绿色页面。 (2)按下btn2,绿色页面隐藏。 (3)按下左边余下的区域&#xff0c;绿色页面也隐藏。 (4)平滑地显示和隐藏 效果&#xff1a; form.h #ifndef FORM_H #define FORM_H#include <QWidget>namespace Ui { class…...

第07天 Static关键字作用及用法

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a;每天一个知识点 ✨特色专栏&#xff1a…...

Redis扩容与一致性Hash算法解析

推荐阅读 AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画、AI讲话、翻译,GPU点亮AI想象空间 资源分享 「java、python面试题」来自UC网盘app分享&#xff0c;打开手机app&#xff0c;额外获得1T空间 https://dr…...

【第七讲---视觉里程计1】

视觉里程计就是通过对图像进行特征提取与匹配得到两帧之间的位姿&#xff0c;并进行估计相机运动。 经典SLAM中以相机位姿-路标来描述SLAM过程 特征提取与匹配 路标是三维空间中固定不变的点&#xff0c;可以在特定位姿下观测到在视觉SLAM中&#xff0c;可利用图像特征点作为…...

Linux: sched: might_sleep; 一个调试函数,演变为真实的睡眠函数,实至名归

#define might_sleep() do { might_resched(); } while (0) #ifdef CONFIG_PREEMPT_VOLUNTARY extern int _cond_resched(void); # define might_resched() _cond_resched(...

(三) 搞定SOME/IP通信之CommonAPI库

本章主要介绍在SOME/IP通信过程中的另外一个IPC通信利剑&#xff0c;CommonAPI库&#xff0c;文章将从如下几个角度让读者了解什么是CommonAPI, 以及库在实际工作中的作用 文中资源&#xff1a;vsomeipcommonapi指导文档与demo源码 SOME/IP通信之CommonAPI CommonAPI库是什么C…...

windows bat脚本,使用命令行增加/删除防火墙:入站-出站,规则

常常手动设置防火墙的入站或出站规则&#xff0c;比较麻烦&#xff0c;其实可以用命令行搞定。 下面是禁用BCompare.exe连接网络的例子&#xff1a; ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(powershell -Comm…...

Stable Diffusion 告别复制关键词,高质量提示词自动生成插件

在使用SD时,我们经常会遇到心中无想法,或不知如何描述心中所想的图像。有时由于提示词的选择不当,生成的图片质量也不尽如人意。为此,我今天为大家推荐一个高质量的提示词自动生成插件——One Button Prompt。 下面是他生成的一些样图。 文章目录 插件安装插件说明主菜单工…...

【学习日记】【FreeRTOS】任务调度时如何考虑任务优先级——任务的自动切换

写在前面 本文开始为 RTOS 加入考虑任务优先级的自动调度算法&#xff0c;代码大部分参考野火。 本文主要是一篇学习笔记&#xff0c;加入了笔者自己对野火代码的梳理和理解。 一、基本思路 首先我们要知道&#xff0c;在 RTOS 中&#xff0c;优先级越高、越需要被先执行的的…...

C语言暑假刷题冲刺篇——day3

目录 一、选择题 二、编程题 &#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;C语言每日一练✨其他专栏&#xff1a;代码小游戏C语言初阶&#x1f91d;希望作者的文章能对你有…...

Taro+vue3小程序开启分享他人和分享到朋友圈

import Taro, { useShareAppMessage, useShareTimeline } from tarojs/taro;onMounted(() > {Taro.showShareMenu({withShareTicket: true,menus: [shareAppMessage, shareTimeline]}); }); useShareAppMessage((res) > {console.log(页面转发的回调)return {title: 开票…...

JAVA-Spring中IOC容器是什么?

目录 JAVA-Spring中IOC容器是什么&#xff1f;什么是IOC&#xff1f;什么是IOC容器&#xff1f;IOC和IOC容器的对比Spring框架中的IOC容器是如何工作的&#xff1f;使用XML配置的ApplicationContext使用注解的AnnotationConfigApplicationContext总结 JAVA-Spring中IOC容器是什…...

QT多屏显示程序

多屏显示的原理其实很好理解&#xff0c;就拿横向扩展来说&#xff1a; 计算机把桌面的 宽度扩展成了 w1&#xff08;屏幕1的宽度&#xff09; w2(屏幕2的宽度) 。 当一个窗口的起始横坐标 > w1&#xff0c;则 他就被显示在第二个屏幕上了。 多屏虚拟成一个桌面&#xff0…...

python使用xlwt时,报ValueError: More than 4094 XFs (styles)

在写表格时&#xff0c;遇到如下报错 一、报错原因 xlwt最多只能有4094个样式&#xff0c;超出这个样式数量就报错了。 二、解决办法 &#xff08;1&#xff09;去掉样式的要求...

GitHub 打不开解决方案

GitHub 这几年国内普通用户越来越难以访问&#xff0c;github 作为全球最大的开源平台&#xff0c;里面有用的内容很多&#xff0c;不管是对专业用户还是普通用户&#xff0c;无法访问都是很严重的问题。 1.GitHub 加速镜像 kgithub 是一个公益加速项目&#xff0c;仅需在 gi…...

Java网络编程(一)网络基础

概述 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递 网络分类 局域网(LAN) 局域网是一种在小区域内使用的,由多台计算机组成的网络,覆盖范围…...

matlab使用教程(17)—多项式的定义和运算

1.创建并计算多项式 此示例说明如何在 MATLAB 中将多项式表示为向量以及根据相关点计算多项式。 1.1 表示多项式 MATLAB 将多项式表示为行向量&#xff0c;其中包含按降幂排序的系数。例如&#xff0c;三元素向量 p [p2 p1 p0]; 表示多项式 创建一个向量以表示二次多项式…...

华为认证 | 这门HCIA认证正式发布!

华为认证云服务工程师HCIA-Cloud Service V3.5&#xff08;中文版&#xff09;自2023年8月11日起&#xff0c;正式在中国区发布。 01 发布概述 基于“平台生态”战略&#xff0c;围绕“云-管-端”协同的新ICT技术架构&#xff0c;华为公司打造了覆盖ICT领域的认证体系&#xf…...

【Docker】Docker安装 MySQL 8.0,简洁版-快速安装使用

今天&#xff0c;使用docker安装mysql数据库进行一个测试&#xff0c;结果网上找了一篇文章&#xff0c;然后。。。。坑死我… 特总结本篇安装教程&#xff0c;主打一个废话不多说&#xff01; 坑&#xff1a;安装成功&#xff0c;客户端工具连接不上数据库》。。。 正文&…...

CSS自己实现一个步骤条

前言 步骤条是一种用于引导用户按照特定流程完成任务的导航条&#xff0c;在各种分步表单交互场景中广泛应用。例如&#xff1a;在HIS系统-门诊医生站中的接诊场景中&#xff0c;我们就可以使用步骤条来实现。她的执行步骤分别是&#xff1a;门诊病历>遗嘱录入>完成接诊…...

5分钟打造个性化Windows桌面:RoundedTB任务栏美化终极指南

5分钟打造个性化Windows桌面&#xff1a;RoundedTB任务栏美化终极指南 【免费下载链接】RoundedTB Add margins, rounded corners and segments to your taskbars! 项目地址: https://gitcode.com/gh_mirrors/ro/RoundedTB 厌倦了Windows千篇一律的方块任务栏&#xff1…...

Qwen3-TTS声音克隆部署全攻略:简单3步,开启你的语音克隆之旅

Qwen3-TTS声音克隆部署全攻略&#xff1a;简单3步&#xff0c;开启你的语音克隆之旅 想不想让一段普通的文字&#xff0c;用你指定的声音说出来&#xff1f;比如&#xff0c;用你自己的声音给视频配音&#xff0c;用朋友的声音讲个笑话&#xff0c;或者用某个角色的声音朗读一…...

Switch视频播放完全指南:使用wiliwili实现离线媒体娱乐

Switch视频播放完全指南&#xff1a;使用wiliwili实现离线媒体娱乐 【免费下载链接】wiliwili 专为手柄控制设计的第三方跨平台B站客户端&#xff0c;目前可以运行在PC全平台、PSVita、PS4 和 Nintendo Switch上 项目地址: https://gitcode.com/GitHub_Trending/wi/wiliwili …...

快速部署Qwen3-TTS-Tokenizer:开箱即用的高保真音频编解码器

快速部署Qwen3-TTS-Tokenizer&#xff1a;开箱即用的高保真音频编解码器 1. 为什么选择Qwen3-TTS-Tokenizer-12Hz&#xff1f; 1.1 音频处理的三大痛点 在语音AI应用中&#xff0c;我们经常面临以下挑战&#xff1a; 存储压力&#xff1a;原始WAV文件体积庞大&#xff0c;1…...

从L298到自举H桥:深入聊聊直流电机驱动方案的演进与选型心得

从L298到自举H桥&#xff1a;直流电机驱动方案的技术演进与工程实践 在机器人底盘、自动化产线和智能硬件开发中&#xff0c;直流电机驱动电路的设计往往决定着整个系统的性能天花板。十年前我们可能还在用L298这类经典驱动芯片&#xff0c;如今工程师们的工具箱里已经出现了IR…...

普冉PY32F071内存紧张?FreeRTOS配置优化全攻略(含heap_4选择与任务栈设置)

普冉PY32F071内存紧张&#xff1f;FreeRTOS配置优化全攻略&#xff08;含heap_4选择与任务栈设置&#xff09; 当你在PY32F071这颗Cortex-M0芯片上运行FreeRTOS时&#xff0c;是否遇到过任务莫名崩溃、系统运行不稳定的情况&#xff1f;作为一款仅有20KB RAM的微控制器&#xf…...

【深度强化学习】DDPG算法在连续动作空间中的实战解析

1. DDPG算法初探&#xff1a;为什么我们需要它&#xff1f; 第一次接触DDPG&#xff08;Deep Deterministic Policy Gradient&#xff09;算法时&#xff0c;我完全被这个拗口的名字吓到了。但当我真正理解它的设计初衷后&#xff0c;才发现它其实解决了一个非常实际的问题——…...

卡证检测矫正模型实战教程:中文Web界面全功能图文操作指南

卡证检测矫正模型实战教程&#xff1a;中文Web界面全功能图文操作指南 1. 引言&#xff1a;为什么你需要这个工具&#xff1f; 想象一下&#xff0c;你手头有一堆身份证、护照或者驾照的照片&#xff0c;它们可能角度歪斜、背景杂乱&#xff0c;甚至有些反光。你需要从中提取…...

[技术突破]obs-multi-rtmp:解决多平台直播资源浪费问题的高效分发方案

[技术突破]obs-multi-rtmp&#xff1a;解决多平台直播资源浪费问题的高效分发方案 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 行业痛点诊断 直播行业正面临多平台分发的严峻挑战&a…...

MacOS极简部署OpenClaw:GLM-4.7-Flash模型联调与安全防护

MacOS极简部署OpenClaw&#xff1a;GLM-4.7-Flash模型联调与安全防护 1. 为什么选择OpenClawGLM-4.7-Flash组合 去年冬天&#xff0c;当我第一次尝试用Python脚本批量处理公司周报时&#xff0c;发现传统自动化工具对非结构化数据的处理能力非常有限。直到遇见OpenClaw这个能…...