IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> PyQt5实现侧面菜单栏-仿QQ设置--以及透明选中按钮效果(详细讲解) -> 正文阅读

[Python知识库]PyQt5实现侧面菜单栏-仿QQ设置--以及透明选中按钮效果(详细讲解)

这是我们要仿制的样式,甚至你可以在这个界面中弄更漂亮的界面效果

源码和UI文件都会开放的

这是我们实现的效果,可以看到切换页面的同时按钮会有被选中的感觉,这是通过label去实现的

下面开始教程

????????

?用QtDesign设计一个界面,包含四个按钮和stackedWidget, 后边还要弄个label,这里页面就弄两页就算了,然后给按钮绑定槽函数

?绑定好后生成UI文件后,转成py文件格式,当然你如果是PySide6可以直接生成py文件

?生成好的py文件

class Ui_MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

初始化,这是写在同一个文件里边,我是不推荐这样做的一般界面和槽函数分开写,然后通过继承UI_MainWIndow来分开写,这个前几篇文章都是这样写的,有兴趣可以看看,由于我特别懒就写一块了。

if __name__ == "__main__":
        app = QApplication(sys.argv)
        window = Ui_MainWindow()
        window.show()
        sys.exit(app.exec_())

主入口,写完后再补充绑定的函数即可

    def ChangeTwo(self):
        self.stackedWidget.setCurrentIndex(0)

?这里0和1就是页面的页数切换,写完这里切换功能就完成了,要加上选中的效果就要用到我们的label了

self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setPixmap(QtGui.QPixmap("Text.png"))
        self.label.setGeometry(QtCore.QRect(0, 0, 691, 451))
        self.label.setScaledContents(True)
        self.label.setObjectName("label")

给label配上图片,要注意的是后边的setText要删掉不然就没图片了,图片和代码我会整合成一个压缩包。

最后通过修改label的位置按钮选中状态就完成了

    def ChangeOne(self):
        self.stackedWidget.setCurrentIndex(1)
        x = self.label.pos().x()
        y = self.label.pos().y()
        self.anim = QPropertyAnimation(self.label, b"geometry")
        self.anim.setDuration(100)
        self.anim.setStartValue(QRect(x, y, 3, 40))
        self.anim.setEndValue(QRect(42, 136, 3, 40))
        self.anim.start()

对应每个槽函数的位置填写对应的x,y就好了

?写完后可以看到Text3是有一个选中的效果,这只是对label移动其中一个例子而已,最后通过修改按钮的样式改成透明

self.pushButton_2.setStyleSheet("QPushButton{\n"
                                        "    color:gray;\n"
                                        "    border-radius: 4px;\n"
                                        "    font: 9pt \"Microsoft YaHei\";\n"
                                        "    background:transparent;\n"
                                        "    border:1px;\n"
                                        "    border-right: transparent;\n"
                                        "}\n"
                                        "QPushButton:pressed{\n"
                                        "    background:rgb(169, 169, 169, 60);\n"
                                        "}")

修改样式后就可以得到透明的效果

?

?这里的图片可以由自已决定

代码和图片就放Q群了954736632

?

?后边考完试会出一个PyDracula的教程,说实话这个抽屉弹出来的动画很好看,PyDracula的代码可以在GitHub和群下到

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 13:57:17  更:2022-01-08 13:58:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:18:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码