pyqt5 制作壁纸切换工具实例 第二章 https://blog.csdn.net/mtl1994/article/details/118152403

文章目录

  • 前言
    • 效果图
  • 一、代码
    • 1.结构
  • 总结

前言

效果图


一、代码

1.结构

wallpaper----resource--------icon------------icon.png----src--------frame------------main.py------------ui_mainwindow.py----main.py
frame/main.py​   MainWidget​     __init__​           1.初始化frame/ui_mainwindows.py​           2.初始化系统托盘​          3.给系统托盘设置点击方法frame/ui_mainwindow.py​    Ui_MainWindow​      setupUi​            1.布局​       retranslateUi​          1.赋值main.py​    1.主函数启动类

frame/main.py

# -*- coding: utf-8 -*-
import os
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QMainWindow, QSystemTrayIconfrom src.frame.ui_mainwindow import Ui_MainWindowclass MainWidget(Ui_MainWindow, QMainWindow):def __init__(self, parent=None):self.icon_path = os.path.join(sys.path[1], 'resource/icon/icon.png')super(MainWidget, self).__init__(parent)self.setupUi(self)self.show_flag = Falseself.setWindowTitle("壁纸")self.setWindowIcon(QIcon(self.icon_path))self.Ui_MainWindow = Ui_MainWindow#系统托盘self.trayIcon = QSystemTrayIcon(self)self.trayIcon.setIcon(QIcon(self.icon_path))self.trayIcon.setToolTip("壁纸")self.trayIcon.show()self.trayIcon.activated.connect(self.tray_click)#设置在系统托盘上方显示tg = self.trayIcon.geometry()self.setGeometry(tg.x()-452/2,tg.y()-802,452, 802)def tray_click(self, reason):if reason in [1,3]:if self.show_flag:self.hide()else:self.show()self.show_flag = not self.show_flag

frame/ui_mainwindow.py

# -*- coding: utf-8 -*-
from PyQt5 import QtCore
from PyQt5.QtWidgets import QMainWindow, QHBoxLayout, QLabel, QWidget, QGridLayoutclass Ui_MainWindow(QMainWindow):def setupUi(self,MainWindow):self.resize(452, 802)MainWindow.setWindowFlags(QtCore.Qt.SubWindow|QtCore.Qt.FramelessWindowHint)self.title = QLabel(self)self.retranslateUi()self.center_widget = QWidget()self.hbox = QHBoxLayout()self.label = QLabel("1",self)self.label2 = QLabel("2",self)self.label3 = QLabel("3",self)self.hbox.addWidget(self.label)self.hbox.addWidget(self.label2)self.hbox.addWidget(self.label3)self.center_widget.setLayout(self.hbox)self.bottom_widget = QWidget()# 创建窗口主部件self.main_widget = QWidget()# 创建主部件的网格布局self.main_layout = QGridLayout()# 设置窗口主部件布局为网格布局self.main_widget.setLayout(self.main_layout)# 左侧部件在第0行第0列,占12行5列self.main_layout.addWidget(self.title, 0, 0, 1, 12, QtCore.Qt.AlignCenter)self.main_layout.addWidget(self.center_widget,1,0,1,12)# 右侧部件在第0行第6列,占12行7列self.main_layout.addWidget(self.bottom_widget, 2, 0, 12, 8)# 设置窗口主部件MainWindow.setCentralWidget(self.main_widget)def retranslateUi(self):_translate = QtCore.QCoreApplication.translateself.title.setText(_translate("MainWindow", "壁纸"))

main.py

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
import tracebackfrom PyQt5.QtWidgets import QApplicationfrom frame.main import  MainWidgetif __name__ == '__main__':try:app = QApplication(sys.argv)QApplication.setQuitOnLastWindowClosed(False)  # 关闭最后一个窗口不退出程序window = MainWidget()# window.show()sys.exit(app.exec_())except Exception as e:traceback.print_exc()

总结

pyqt5 制作壁纸切换工具实例 第一章相关推荐

  1. pyqt5 制作壁纸切换工具实例 第二章

    pyqt5 制作壁纸切换工具实例 第一章 https://blog.csdn.net/mtl1994/article/details/118020546 提示:写完文章后,目录可以自动生成,如何生成可 ...

  2. 前端H5怎么切换语言_第一章 产品经理必懂的前端技术- 上

    产品经理为什么要懂一些前端技术? 当前端H5工程师说CSS时,你是否知道他在表达什么? 当andriod工程师说这个文本要用TextView时,你是否明白TextView是什么? 当ios工程师说这个 ...

  3. pyqt5 制作的串口工具

    串口工具私人版 工作中涉及无线通信芯片模组的测试,所以串口工具用的比较多.但是因为之前用的网上找的串口工具更新后串口工具历史记录被阉割了,还要钱~白嫖党的我不能忍,于是自己仿造了一个用于自己测试. 一 ...

  4. Python爬虫+PyQt5制作mp3下载工具

    实际效果如下图所示: 源代码有四个文件,分别是kugou.ui.kugou_ui.py.my_spider.py.main.py. kugou.ui: <?xml version="1 ...

  5. wxFormBuilder + wxPython 工具开发第二章-日记本工具数据连接与展示

    目录 前言 一.代码目录层级 二.数据库 三.数据表设计 四.展示数据 前言 上一章节已经介绍了如何将程序主窗口设计好生成python代码,运行成功的展示了窗体. 上一章内容地址: wxFormBui ...

  6. 《零成本实现Web自动化测试--基于Selenium》第一章 自动化测试基础

    第一篇 Selenium 和WebDriver工具篇 第一章 自动化测试基础 1.1    初识自动化测试 自动化测试有两种常见方式 1.1.1 代码驱动测试,又叫测试驱动开发(TDD) 1.1.2 ...

  7. 《Abaqus GUI程序开发指南(Python语言)》——第一章 概述1.1 简单插件实例——创建带孔板有限元模型...

    本节书摘来自异步社区<Abaqus GUI程序开发指南(Python语言)>一书中的第1章,第1.1节,作者: 贾利勇 , 富琛阳子 , 贺高 , 周正光 更多章节内容可以访问云栖社区&q ...

  8. 【笔记】Cocos2d-x高级开发教程:制作自己的捕鱼达人 笔记一:序_前言_第一章

    [笔记]Cocos2d-x高级开发教程:制作自己的<捕鱼达人> 笔记一:序_前言_第一章 转载请注明出处:http://blog.csdn.net/l_badluck/article/de ...

  9. 编写高性能 .NET 代码 第一章:工具介绍 -- Performance Counters(性能计数器)

    Performance Counters(性能计数器) 性能计数器是监视应用程序和系统性能的最简单的方法之一.它有几十个类别数百个计数器在,包括一些.net特有的计数器.要访问这些可以通过系统自带的 ...

最新文章

  1. ubuntu 内存占用解析
  2. nyist -- 组队赛(一)
  3. python中文字体下载_python中matlabplot和seaborn中文字体显示的一种解决方案
  4. 【js】event(事件对象)详解
  5. 计算机系统硬件类(Computer System Hardware Classes)
  6. Python之Numpy操作基础
  7. 小记tensorflow-1:tf.nn.conv2d 函数介绍
  8. spring jdbcTemplate查询使用
  9. potainer 日志_分享10个优秀的日志分析工具
  10. Presto Facebook 开源的大数据查询引擎
  11. 【HTML5】input标签中的Require必填项
  12. 计算机考研人工智能选什么方向,我想报人工智能方向的研究生,应该选取什么专业?...
  13. Container及其内部进程监控剖析
  14. rknn模型转换问题记录
  15. REDSHIFT学习笔记-渲染设置3_GIPhotonSSS
  16. IE中点击链接下载EXCEL文件直接以乱码方式打开解决
  17. (一)验证微信公众平台
  18. C 语言取整的几种方法
  19. 我为什么要禁止回复,以及呵呵呵呵呵
  20. 好书推荐-腾讯方法:一个市值1500亿美元公司的产品真经

热门文章

  1. 分析非结构化数据的10个步骤
  2. 如何快速计算汉字笔画数
  3. 汇编基址变址寻址方式的使用
  4. jdk,jre的下载安装教程
  5. html5 audio样式修改,HTML5中 audio的样式设置
  6. LCD1602液晶显示屏的字符显示
  7. 关于HTML中a标签的重大安全性漏洞!!!
  8. android 设置布局宽度,Android布局宽度为50%
  9. 【Multisim仿真】74LS47译码器驱动共阳数码管显示(0-8)数字显示
  10. 12306查询车票(爬虫小练_1)