PyQt:实现菜单栏的点击拖动效果

一、整体步骤

1.设计UI文件

2.调用显示

3.效果展示

在这里插入图片描述

二、设计UI文件

1.添加 Scroll Area控件,作为菜单栏的布置区域

在这里插入图片描述

2.设置 Scroll Area控件的属性

在这里插入图片描述

3.Scroll Area控件内放置 按钮控件 组成菜单栏

放置
此处,放置了需要了6个按钮,并设置按钮的固定尺寸
在这里插入图片描述

4.Scroll Area设置整体水平布局,必须要有布局

在这里插入图片描述
第6个按钮,使其在Scroll Area控件显示区域之外
在这里插入图片描述

5.生成UI文件,并生成对应的py文件:scroller.py

三、调用显示

窗口文件调用scroller.py显示:from scroller import Ui_Form


from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from scroller import Ui_Form



class main(QMainWindow, Ui_Form):

    def __init__(self):
        super(main, self).__init__()
        self.setupUi(self)

        #菜单栏移动事件...........拓展宽度
        self.scroll_bar = self.scrollArea.horizontalScrollBar()
        self.scrollArea.installEventFilter(self)
        self.last_time_move = 0


    #菜单栏移动
    def eventFilter(self, source, event):
        if event.type() == QEvent.MouseMove:
            if self.last_time_move == 0:
                self.last_time_move = event.pos().x()
            distance = self.last_time_move - event.pos().x()
            self.scroll_bar.setValue(self.scroll_bar.value() + distance)
            self.last_time_move = event.pos().x()
        elif event.type() == QEvent.MouseButtonRelease:
            self.last_time_move = 0
        return QMainWindow.eventFilter(self, source, event)

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    window = main()
    window.show()
    sys.exit(app.exec_())

运行,即可实现效果。

备注:整体资源免费下载

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

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

相关文章

YoloV8改进策略:BackBone改进|PKINet

摘要 PKINet是面向遥感旋转框的主干,网络包含了CAA、PKI等模块,给我们改进卷积结构的模型带来了很多启发。本文,使用PKINet替代YoloV8的主干网络,实现涨点。PKINet是我在作者的模型基础上,重新修改了底层的模块,方便大家轻松移植到YoloV8上。 论文:《Poly Kernel Ince…

科学认识并正确运用人工智能技术赋能国际传播

以下文章来源:学习时报 加强国际传播能力建设,全面提升国际传播效能,形成同我国综合国力和国际地位相匹配的话语权,已成为实现中国式现代化需要解决好的一个重大问题。文生视频模型Sora,是继ChatGPT之后又一推动传播智…

SinoDB系统数据库

在SinoDB数据库的一个实例中,存在多个数据库,分为系统数据库和用户数据库。系统数据库在实例初始化时自动创建,存放实例级别上的监控信息、数据字典信息,用户能够访问而不能修改这些数据。用户数据库由用户根据需要创建&#xff0…

MyBatis3源码深度解析(十九)MyBatis日志实现

文章目录 前言第七章 MyBatis日志实现7.1 Java日志体系7.1.1 常用日志框架7.1.2 Java日志发展史7.1.3 日志接口与日志实现的绑定 7.2 MyBatis日志实现7.2.1 Log接口7.2.2 LogFactory工厂7.2.3 MyBatis日志自动查找7.2.4 MyBatis日志类型配置 7.3 小结 前言 日志是Java应用中必…

信驰达车规蓝牙模块RF-BM-2642QB1I赋能汽车T-Box

近年来,随着人们对数据传输需求的增长,传统网络布线的通讯方式逐渐显现出满足不了的局限性,与此同时,各种无线传输技术迅速发展。汽车工业同样需要无线通讯技术,但红外技术、802.11、HomeRF等技术在汽车工业中存在一定…

axure和蓝湖上查看页面的说明和上传文件

蓝湖上传文件 入口 可添加链接和文件 文件可添加 PDF,word,Excel等,不能添加压缩包,可在线预览文件内容 axure元件说明 在原型上添加说明 axure发布页 axure预览页或发布到axure的服务器上,查看页面说明的方法 点…

python中如何解析Html

在最近需要的需求中,需要 python 获取网页内容,并从html中获取到想要的内容。这里记录一下两个比较常用的python库对html的解析。 1. BeautifulSoup 它是一个非常流行的python脚本库,用于解析HTML和XML文档。如果你对 java 很熟悉&#xff…

如何在Linux系统部署Dupal CMS结合内网穿透实现无公网IP访问web界面

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址 正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默&a…

美摄科技剪同款SDK解决方案全面升级

视频内容已成为企业宣传、品牌塑造和市场营销的重要载体。然而,如何快速、高效地制作出高质量的视频内容,成为摆在众多企业面前的一大难题。针对这一挑战,美摄科技凭借深厚的技术积累和创新能力,推出了全新的剪同款SDK解决方案&am…

python 爬取杭州小区挂牌均价

下载chrome驱动 通过chrome浏览器的 设置-帮助-关于Google Chrome 查看你所使用的Chrome版本 驱动可以从这两个地方找: 【推荐】https://storage.googleapis.com/chrome-for-testing-publichttp://npm.taobao.org/mirrors/chromedriver import zipfile import os import r…

五、初识Django

初识Django 1.安装django2.创建项目2.1第一种方式:在终端2.2第二种方式:Pycharm 3.创建app4.快速上手4.1再写一个页面4.2templates模板4.3静态文件4.3.1static目录4.3.2引用静态文件 5.模板语法案例:伪联通新闻中心6.请求和相应案例&#xff…

23 OpenCV 直方图比较

文章目录 直方图比较的目的相关性计算 (CV_COMP_CORREL)卡方计算 (CV_COMP_CHISQR)十字计算(CV_COMP_INTERSECT)巴氏距离计算 (CV_COMP_BHATTACHARYYA )compareHist 直方图比较算子示例 直方图比较的目的 直方图比较的目的是衡量两幅图像之间的相似度或差异度。通过计算图像的颜…

数据可视化实战(三)

图书销量情况对比 import pandas as pd import matplotlib.pyplot as plt # 读取Excel数据 dfpd.read_excel(mrbook.xlsx) df序号书号序号.1月份销量rate0B189.787569e1211月15060.31B199.787569e1222月1200-0.32B259.787569e1233月33050.63B219.787569e1244月66100.54NaNNaN5…

redis从入门到实战

Redis基础 简介 Redis(Remote Dictionary Server)是一个开源的、基于内存的数据存储和缓存系统。它是一个高性能的键值存储数据库,,以其快速的读写能力、丰富的数据结构和多种应用场景而受到广泛关注。默认的database有16个&…

使用Docker搭建YesPlayMusic网易云音乐播放器并发布至公网访问

目录 ⛳️推荐 1. 安装Docker 2. 本地安装部署YesPlayMusic 3. 部署公有云YesPlayMusic播放器 3.1 安装cpolar内网穿透 3.2 固定YesPlayMusic公网地址 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一…

Docker网桥、DockerFile自定义镜像、DockerCompose工具(二)

这里写目录标题 1、网桥1.1、网络相关操作1.1.1、创建网络1.1.2、列出网络1.1.3、加入网络1.1.4、查看网络详情1.1.5、删除网络 2、Dockerfile自定义镜像2.1、镜像结构2.2、Dockerfile语法2.2.1、概述2.2.2、快速入门2.2.1、FROM2.2.2、CMD2.2.3、ENV2.2.4、WORKDIR2.2.5、run2…

银行OA系统|基于SpringBoot架构+ Mysql+Java+ B/S结构的银行OA系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可…

基于FPGA的FFT图像滤波设计

1.FFT滤波算法介绍 FFT滤波就是通过傅里叶运算将图像转换到频域空间,然后在频域中对图像进行处理,最后将处理后的图像通过傅里叶逆运算将图像转会到时域空间。 在频域空间中,我们能够更好的对图像的噪声进行分析,然后找出相关规律…

MAC废纸篓删掉还能复原吗 MAC废纸篓倾倒掉的文件怎么恢复 删除的东西在哪里可以找回来 怎么找回已删除的文件

MAC系统中的废纸篓(Trash)通常指用来临时存放用户即将丢弃的文件的地方。MAC系统的废纸篓功能相当于Windows系统的垃圾回收站,通过废纸篓删除的文件,一般是无法从系统中操作还原。那么,MAC废纸篓删掉还能复原吗&#x…

5-隐藏层:神经网络为什么working

声明 本文章基于哔哩哔哩付费课程《小白也能听懂的人工智能原理》。仅供学习记录、分享,严禁他用!!如有侵权,请联系删除 目录 一、知识引入 (一)隐藏层 (二)泛化 (三…