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

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_Formclass 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 = 0return QMainWindow.eventFilter(self, source, event)if __name__ == '__main__':import sysapp = QApplication(sys.argv)window = main()window.show()sys.exit(app.exec_())

运行,即可实现效果。

备注:整体资源免费下载

http://www.lryc.cn/news/325184.html

相关文章:

  • 力扣--并查集547.省份数量
  • leetcode35-Search Insert Position
  • API 接口渗透测试
  • oracle 19c单机版本补丁升级
  • 推荐系统的未来:大模型驱动的个性化推荐技术与挑战
  • Allegro许可管理工具
  • React函数组件Hook
  • 【FinalShell】远程连接 Linux 工具 FinalShell 的使用:查看 AI 语言大模型对话实时日志
  • ARM Coresight 系列文章 11.1 -- CoreSight Cortex-M33 CTI 详细介绍】
  • Linux常用操作命令(清单快查版)
  • [C语言]结构体、位段、枚举常量、联合体
  • LangChain核心模块 Retrieval——文档加载器
  • 力扣爆刷第104天之CodeTop100五连刷6-10
  • Docker操作基础命令
  • 穿越地心:3D可视化技术带你领略地球内部奇观
  • 蓝桥杯刷题_day1_回文数_水仙花数_进制转换
  • jmeter接口导入方式
  • 设计模式(行为型设计模式——状态模式)
  • 【Flutter学习笔记】10.3 组合实例:TurnBox
  • 性能测试入门 —— 什么是性能测试PTS?
  • 【机器学习】基于变色龙算法优化的BP神经网络分类预测(SSA-BP)
  • pytorch中tensor类型转换的几个函数
  • 深入理解Elasticsearch高效原理
  • http和socks5代理哪个隐蔽性更强?
  • 邮箱的正则表达式
  • blender插件笔记
  • 解释关系型数据库和非关系型数据库的区别
  • YAML-02-yml 配置文件 java 整合使用 yamlbeans + snakeyaml + jackson-dataformat-yaml
  • 【综述+LLMs】国内团队大语言模型综述:A Survey of Large Language Models (截止2023.11.24)
  • 开始喜欢上了runnergo,JMeter out了?