利用Python实现桌面小部件——基本功能实现

一、简介

        这里利用python实现的桌面小部件为桌面宠物,采用PyQt5库开发,最终实现随机移动,点击相应及拖拽相应,后面添加了单词查询及辅助记单词的功能。本文主要介绍前半部分的实现,也是桌面小部件的基本要求。

二、主界面实现

        这里创建了MainWindow类实现桌面小部件的显示以及移动,同时管理其它类及功能。

class MainWindow(QWidget):
    def __init__(self, parent=None):
        # 调用父类构造方法
        super(MainWindow, self).__init__(parent)
        # 设置窗口标志:无边框、保持在顶部、子窗口
        self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.SubWindow)
        # 禁用自动背景填充
        self.setAutoFillBackground(False)
        # 设置窗口背景为透明
        self.setAttribute(Qt.WA_TranslucentBackground, True)
        # 重新绘制窗口
        self.repaint()

        self.par = Parameter()

        # 创建一个标签用于显示图像
        self.label = QLabel()
        # 获取屏幕宽度和高度
        self.screenWidth, self.screenHeight = QApplication.desktop().width(), QApplication.desktop().height()
        # 设置图像路径/默认人物
        # 初始化窗口宽度和高度
        self.width, self.height = 0, 0
        # 根据默认路径设置图像
        self.setImage(rf':images\{self.par.character}1.png')
        # 设置窗口初始位置
        self.par.x, self.par.y = self.screenWidth - self.width, self.screenHeight - self.height - 100
        self.par.ground = self.par.y
        # 创建菜单和操作项
        self.iconMenu = QMenu(self)
        actionQuit = QAction('退出', self, triggered=self.quit)
        actionQuit.setIcon(QIcon(r':images\sayori1.png'))
        self.iconMenu.addAction(actionQuit)
        actionSetting = QAction('设置', self, triggered=lambda: self.setting.show())
        actionSetting.setIcon(QIcon(r':images\natsuki1.png'))
        self.iconMenu.addAction(actionSetting)
        actionAudio = QAction('音频', self, triggered=self.playAudio)
        actionAudio.setIcon(QIcon(r':images\monika2.png'))
        self.iconMenu.addAction(actionAudio)

        # 创建系统托盘图标
        self.tray_icon = QSystemTrayIcon(self)
        self.tray_icon.setIcon(QIcon(':images\monika1.png'))
        self.tray_icon.setContextMenu(self.iconMenu)
        self.tray_icon.show()

        # 初始化定时器
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.acti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值