From e6fd09f3fa3755347ad50167299f0c6b4270c08f Mon Sep 17 00:00:00 2001 From: WEIR YU Date: Wed, 20 Sep 2017 22:25:14 +0800 Subject: [PATCH 1/3] Add files via upload From 7305a6cccb30983a110ef531c6ba70bda741f39a Mon Sep 17 00:00:00 2001 From: WEIR YU Date: Thu, 21 Sep 2017 15:02:49 +0800 Subject: [PATCH 2/3] Add files via upload --- clean.ico | Bin 0 -> 67646 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 clean.ico diff --git a/clean.ico b/clean.ico new file mode 100644 index 0000000000000000000000000000000000000000..c87fcc8539e47e8e88d5a1a342b30c1578d5f0dd GIT binary patch literal 67646 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 Date: Thu, 21 Sep 2017 15:03:28 +0800 Subject: [PATCH 3/3] Add files via upload --- 20170330.py | 517 +++++++++++++++++++++++++++++++++++++++++++++++++ background.jpg | Bin 0 -> 31327 bytes close.ico | Bin 0 -> 67646 bytes file.ico | Bin 0 -> 67646 bytes folder.ico | Bin 0 -> 59198 bytes title.ico | Bin 0 -> 67646 bytes 6 files changed, 517 insertions(+) create mode 100644 20170330.py create mode 100644 background.jpg create mode 100644 close.ico create mode 100644 file.ico create mode 100644 folder.ico create mode 100644 title.ico diff --git a/20170330.py b/20170330.py new file mode 100644 index 0000000..cce585e --- /dev/null +++ b/20170330.py @@ -0,0 +1,517 @@ +# -*- coding: utf-8 -*- +""" +说明: +需要建立一个1.qrc文件,将所有的资源文件(图标)写入,在文件目录下执行pyrcc5 -o images_qr.py 1.qrc +最后在代码中import images_qr,并修改资源文件路径名前加: +打包程序 pyinstaller -F -w -i title.ico 20170330.py +""" + +import sys +import os +import shutil +import urllib.request +import re +import time +import win32gui +import win32con +import win32api +import images_qr + +from PyQt5 import QtCore, QtGui +from PyQt5.QtCore import QRect, QMetaObject, QCoreApplication +from PyQt5.QtGui import QIcon, QPalette, QBrush, QPixmap, QFont +from PyQt5.QtWidgets import QFileDialog, QMenuBar, qApp, QDesktopWidget, QPushButton, QMenu, QAction +from PyQt5.QtWidgets import QWidget, QApplication, QMainWindow, QMessageBox, QStatusBar, QToolTip + +# 界面函数 +class Ui_MainWindow(object): + def setupUi(self, MainWindow): + MainWindow.setObjectName("MainWindow") + # 设置窗口大小 + MainWindow.resize(600, 500) + + # 设置主窗口背景 + palette = QPalette() + # 背景图片设置 + palette.setBrush(QPalette.Background, QBrush(QPixmap(":/background.jpg"))) + self.setPalette(palette) + self.setAutoFillBackground(True) + + # 窗口置中 + self.center() + self.centralwidget = QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + MainWindow.setCentralWidget(self.centralwidget) + + # 窗口无边框,效果不大合适 + # self.setWindowFlags(QtCore.Qt.FramelessWindowHint|QtCore.Qt.SubWindow|QtCore.Qt.WindowStaysOnTopHint) + + # 菜单栏部分 + self.menubar = QMenuBar(MainWindow) + # 第一个,第二个参数为左上角坐标,后两个参数为宽度和高度 + self.menubar.setGeometry(QRect(0, 0, 600, 30)) + self.menubar.setObjectName("menubar") + self.menu = QMenu(self.menubar) + self.menu.setObjectName("menu") + self.menu_2 = QMenu(self.menubar) + self.menu_2.setObjectName("menu_2") + MainWindow.setMenuBar(self.menubar) + + # 状态栏部分 + self.statusbar = QStatusBar(MainWindow) + self.statusbar.setObjectName("statusbar") + MainWindow.setStatusBar(self.statusbar) + + # 往菜单栏添加动作 + self.action = QAction(MainWindow) + self.action.setObjectName("action") + self.action_2 = QAction(MainWindow) + self.action_2.setObjectName("action_2") + self.action_3 = QAction(MainWindow) + self.action_3.setObjectName("action_3") + self.action_4 = QAction(MainWindow) + self.action_4.setObjectName("action_4") + self.action_5 = QAction(MainWindow) + self.action_5.setObjectName("action_5") + self.action_6 = QAction(MainWindow) + self.action_6.setObjectName("action_6") + self.menu.addAction(self.action) + self.menu.addAction(self.action_2) + self.menu.addAction(self.action_3) + self.menu.addAction(self.action_4) + self.menu_2.addAction(self.action_5) + self.menu_2.addAction(self.action_6) + self.menubar.addAction(self.menu.menuAction()) + self.menubar.addAction(self.menu_2.menuAction()) + + + # 中心区主要功能部件 + # 可选带图标的pushbutton + # self.NI_mainwindow = QPushButton(QIcon(":/NI.jpg"), u'是', self ) + self.NI_mainwindow = QPushButton(self) + self.NI_mainwindow.setGeometry(QRect(100, 100, 200, 200)) + # 透明效果 + self.NI_mainwindow.setFlat(True) + self.NI_mainwindow.setStyleSheet('''color: yellow; + ''') + self.NI_mainwindow.setObjectName("NI_mainwindow") + #self.NI_mainwindow.setToolTip('设置国家地理每日精选为桌面壁纸') # 悬浮提示框,在当前透明效果下失效 + self.NI_mainwindow.setStatusTip('设置国家地理每日精选为桌面壁纸') + self.Bing_mainwindow = QPushButton(self) + self.Bing_mainwindow.setGeometry(QRect(225, 200, 200, 200)) + self.Bing_mainwindow.setObjectName("Bing_mainwindow") + self.Bing_mainwindow.setFlat(True) + self.Bing_mainwindow.setStyleSheet('''color: yellow; + ''') + self.Bing_mainwindow.setStatusTip("设置bing每日精选为桌面壁纸") + self.WallHaven_mainwindow = QPushButton(self) + self.WallHaven_mainwindow.setGeometry(QRect(350, 100, 200, 200)) + self.WallHaven_mainwindow.setObjectName("WallHaven_mainwindow") + self.WallHaven_mainwindow.setFlat(True) + self.WallHaven_mainwindow.setStyleSheet('''color: yellow; + ''') + self.WallHaven_mainwindow.setStatusTip("设置壁纸天堂小时精选为桌面壁纸") + self.retranslateUi(MainWindow) + QMetaObject.connectSlotsByName(MainWindow) + + # 工具栏 + toolbar = self.addToolBar('工具栏') + toolbar.addAction(QAction(QIcon(":/file.ico"), "设置本地图片为壁纸", self, triggered= self.user_set_wallpaper)) + toolbar.addAction(QAction(QIcon(":/folder.ico"), "设置壁纸保存文件夹", self, triggered= self.set_save_folder)) + toolbar.addAction(QAction(QIcon(":/clean.ico"), "清空本地壁纸文件夹", self, triggered = self.delete_wallpaper)) + # 间隔符 + # toolbar.addSeparator() + toolbar.addAction(QAction(QIcon(":/close.ico"), "关闭软件", self, triggered=qApp.quit)) + + palette = QtGui.QPalette() + brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) + brush.setStyle(QtCore.Qt.SolidPattern) + palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush) + + # 窗口居中函数1 + """ + def center(self): + # 计算显示器分辨率 + screen = QDesktopWidget().screenGeometry() + size = self.geometry() + # 将窗口左上角移动到该位置,相当于将窗口移动到中间的位置 + self.move((screen.width() - size.width())/2, (screen.height() - size.height())/2) + """ + + # 窗口居中函数2,效果较好 + def center(self): + # 得到主窗体的矩形说明 + qr = self.frameGeometry() + # 算出显示器分辨率,得到中心点 + cp = QDesktopWidget().availableGeometry().center() + # 设置矩形的中心点到屏幕的中心 + qr.moveCenter(cp) + # 移动程序窗口的左上角到qr矩形的左上角,将窗口放到屏幕中心 + self.move(qr.topLeft()) + + # 菜单名 + def retranslateUi(self, MainWindow): + _translate = QCoreApplication.translate + # 界面右上角的程序名 + MainWindow.setWindowTitle(_translate("MainWindow", "壁纸大师")) + # 程序右上角的图标 + MainWindow.setWindowIcon(QIcon(r":/title.ico")) + # 菜单名 + self.menu.setTitle(_translate("MainWindow", "设置")) + self.menu_2.setTitle(_translate("MainWindow", "帮助")) + # 二级菜单名 + self.action.setText(_translate("MainWindow", "设置本地图片壁纸")) + self.action_2.setText(_translate("MainWindow", "设置壁纸保存文件夹")) + self.action_3.setText(_translate("MainWindow", "清空壁纸保存文件夹")) + self.action_4.setText(_translate("MainWindow", "退出")) + self.action_5.setText(_translate("MainWindow", "关于软件")) + self.action_6.setText(_translate("MainWindow", "版权说明")) + # 主函数部分 + self.NI_mainwindow.setText("国家地理每日精选") + self.Bing_mainwindow.setText("bing每日精选") + self.WallHaven_mainwindow.setText("壁纸天堂小时精选") + + +# 功能函数 +class Window(QMainWindow, Ui_MainWindow): + def __init__(self, *args, **kwargs): + # 初始化 + super(Window, self).__init__(*args, **kwargs) + self.setupUi(self) + + self.action.setIcon(QIcon(":/file.ico")) + self.action.setShortcut("Ctrl+O") + self.action.setStatusTip("设置本地图片为壁纸") + self.action.triggered.connect(self.user_set_wallpaper) + + self.action_2.setIcon(QIcon(":/folder.ico")) + self.action_2.setShortcut("Ctrl+F") + self.action_2.setStatusTip("设置本地壁纸保存文件夹") + self.action_2.triggered.connect(self.set_save_folder) + + self.action_3.setIcon(QIcon(":/clean.ico")) + self.action_3.setShortcut("Ctrl+D") + self.action_3.setStatusTip("清空本地壁纸保存文件夹") + self.action_3.triggered.connect(self.delete_wallpaper) + + self.action_4.setIcon(QIcon(":/close.ico")) + self.action_4.setShortcut("Ctrl+Q") + self.action_4.setStatusTip("退出程序") + self.action_4.triggered.connect(qApp.quit) + # 可选确认后退出函数 + # self.action_3.triggered.connect(self.closeEvent) + + self.action_5.setShortcut("Ctrl+A") + self.action_5.setStatusTip("关于软件") + self.action_5.triggered.connect(self.about_software_information) + + self.action_6.setShortcut("Ctrl+U") + self.action_6.setStatusTip("版权说明") + self.action_6.triggered.connect(self.copyright_information) + + self.NI_mainwindow.clicked.connect(self.nationalgeographic_wallpaper) + self.Bing_mainwindow.clicked.connect(self.bing_wallpaper) + self.WallHaven_mainwindow.clicked.connect(self.wallheaven_wallpaper) + + + # 通用网址解码函数 + def open_url(self, url): + # 增加浏览器头,防止反爬虫屏蔽 + headers = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6', + 'Referer': 'https://alpha.wallhaven.cc/latest', + 'Connection': 'keep-alive'} + # 异常处理 + try: + req = urllib.request.Request(url, headers=headers) + page = urllib.request.urlopen(req) + html = page.read().decode('UTF-8') + return html + except urllib.request.URLError as e: + if hasattr(e, "reason"): + print("Failed to reach the server") + print("The reason:", e.reason) + return None + elif hasattr(e, "code"): + print("The server couldn't fulfill the request") + print("Error code:", e.code) + print("Return content:", e.read()) + return None + except: + return None + # 无异常执行 + else: + print("OK") + # 无论是否异常均执行 + finally: + print("OK") + + def set_save_folder(self): + local = self.dictionary_get() + print(local) + folder = QFileDialog.getExistingDirectory(self, "选择壁纸保存文件夹", local) + # 没有得到返回的文件夹名就不进行操作 + if folder == '': + pass + else: + # 针对目录选择为根文件夹的情况修复bug + if str(folder)[-1] == "/": + folder_new = str(folder).replace("/","") + else: + folder_new = folder + with open("壁纸保存目录.txt", "w") as fp: + fp.write(folder_new) + fp.close() + + + # 用户自定义设置壁纸 + + def user_set_wallpaper(self): + local = self.dictionary_get() + filename, _ = QFileDialog.getOpenFileName(self, "选取壁纸文件", local, "All Files (*);;Images (*.jpg *.png *.jpeg)") + print(filename) + if filename == '': + pass + else: + setWallpaper(filename) + + # 清空本地壁纸函数 + def delete_wallpaper(self): + local = self.dictionary_get() + if local == '': + QMessageBox.about(self,"壁纸大师","本地壁纸文件夹为空") + else: + reply = QMessageBox.information(self, '壁纸大师 ', '您确定要清空本地壁纸文件夹吗?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) + if reply == QMessageBox.Yes: + # 判断文件夹是否存在 + if os.path.exists(local): + # 清空文件夹 + local_nationalgeographic = local + "\\" + "nationalgeographic" + local_bing = local + "\\" + "bing_wallpaper" + local_wallheaven = local + "\\" + "wallheaven" + if os.path.exists(local_nationalgeographic): + shutil.rmtree(local_nationalgeographic) + if os.path.exists(local_bing): + shutil.rmtree(local_bing) + if os.path.exists(local_wallheaven): + shutil.rmtree(local_wallheaven) + QMessageBox.about(self, "壁纸大师", "本地壁纸文件夹清空完成") + else: + QMessageBox.about(self, "壁纸大师", "本地壁纸文件夹不存在") + elif reply == QMessageBox.No: + pass + else: + pass + + # 读取壁纸保存目录函数 + def dictionary_get(self): + # 设定第一次使用时默认壁纸保存目录 + if not os.path.isfile("壁纸保存目录.txt"): + with open("壁纸保存目录.txt", "w") as fp: + fp.write("E:\壁纸") + fp.close() + # 读取壁纸保存目录 + with open("壁纸保存目录.txt", "r") as fp: + location = fp.read() + fp.close() + # 判断文件夹是否存在 + if not os.path.exists(location): + os.mkdir(location) + return location + + # 退出时进行确认的函数 + def closeEvent(self, event): + # 默认退出选项是YES + reply = QMessageBox.question(self, '壁纸大师', '您确定要退出吗?', + QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes) + + if reply == QMessageBox.Yes: + event.accept() + else: + event.ignore() + + def about_software_information(self): + QMessageBox.about(self, "关于软件", "Version 1.3.2\nCopyright@weir\nAll rights reserved") + + def copyright_information(self): + QMessageBox.about(self, "版权说明", "本软件仅供内部技术交流使用\n相关图片版权归著作权人所有\n请勿用于商业用途") + # QMessageBox.information(self, "使用说明", " 本软件仅供内部技术交流使用,请勿用于商业用途\n 相关图片版权归著作权人所有,请勿用于商业用途", QMessageBox.Yes) + + # bing壁纸主函数 + def bing_wallpaper(self): + # 正则匹配获得图片,可以匹配jpg和jpeg格式 + p = '/az/.*?\.jpe*g' + # 获得本地文件夹地址 + local = self.dictionary_get() + # 在这里local指定文件保存的文件夹位置!!!!! + local_bing = local + "\\" + "bing_wallpaper" + print(local_bing) + # bing中国区主页网址 + url_china = 'http://global.bing.com/?FORM=HPCNEN&setmkt=zh-cn&setlang=zh-cn' + # bing美国区主页地址 + url1_america = 'http://global.bing.com/?FORM=HPCNEN&setmkt=en-us&setlang=en-us' + html = self.open_url(url_china) + # 网络连接不通异常处理 + # 双网址备份,优先选择中文网址,其次选择英文网址 + if html == None: + html = self.open_url(url1_america) + if html == None: + QMessageBox.about(self,"壁纸大师",'网络错误,请检查网络连接后重试') + imglist = [] + else: + imglist = re.findall(p, html) + else: + imglist = re.findall(p, html) + # 异常处理 + if imglist != []: + print(imglist) + # 获得系统时间作为文件名 + time.localtime(time.time()) + n = time.strftime('%Y-%m-%d', time.localtime(time.time())) + # 设定文件名,获得文件名后缀图片类型 + filetype = imglist[0].split('.')[-1] + filename = 'bing-' + str(n) + "." + str(filetype) + # 修改当天更换过壁纸后无法再次更换的bug + imagepath = local_bing + "\\" + filename + # 判断当前文件夹是否存在 + if not os.path.exists(local_bing): + os.mkdir(local_bing) + # 判断当前壁纸是否存在 + if os.path.isfile(local_bing + "\\" + filename): + print("您今天已经更换过壁纸了") + else: + # 保存壁纸文件,返回文件位置 + bing_final_url = r'http://cn.bing.com' + imglist[0] + urllib.request.urlretrieve(bing_final_url, imagepath) + setWallpaper(imagepath) + # 错误处理 + else: + pass + + # 国家地理壁纸主函数 + def nationalgeographic_wallpaper(self): + new_urllist = [] + local = self.dictionary_get() + local_nationalgeographic = local + "\\" + "nationalgeographic" + p = r'/photography/.*?\.html' + url = 'http://www.nationalgeographic.com.cn/photography/photo_of_the_day/' + html = self.open_url(url) + # 网络连接异常处理 + if html == None: + QMessageBox.about(self, "壁纸大师", '网络错误,请检查网络连接后重试') + urllist = [] + else: + urllist = re.findall(p, html) + if urllist!= []: + for url in urllist: + if urllist.count(url) > 3: + new_urllist.append(url) + new_url = r"http://www.nationalgeographic.com.cn" + new_urllist[0] + new_html = self.open_url(new_url) + q = r"http://image.nationalgeographic.com.cn/.\d+/.\d+/.\d+.jpe*g" + if new_html == None: + QMessageBox.about(self, "壁纸大师", '网络错误,请检查网络连接后重试') + imglist = [] + else: + imglist = re.findall(q, new_html) + print(imglist) + if imglist != []: + n = time.strftime('%Y-%m-%d-%H', time.localtime(time.time())) + filetype = imglist[len(imglist) - 1].split(".")[-1] + print(filetype) + filename = 'national-geographic' + str(n) + "." + str(filetype) + if not os.path.exists(local_nationalgeographic): + os.mkdir(local_nationalgeographic) + if os.path.isfile(local_nationalgeographic + "\\" + filename): + print("您今天已经更换过壁纸了") + else: + print(imglist[len(imglist)-1]) + urllib.request.urlretrieve(imglist[len(imglist) - 1], local_nationalgeographic + "\\" + filename) + # 修改当天更换过壁纸后无法再次更换的bug + imagepath = local_nationalgeographic + "\\" + filename + setWallpaper(imagepath) + else: + pass + else: + pass + + # wallheaven壁纸主函数 + def wallheaven_wallpaper(self): + local = self.dictionary_get() + local_wallheaven = local + "\\" + "wallheaven" + # 正则匹配获得图片网址 + # .\d+ 匹配出数字id,\d表示数字,+表示多位 + print(local_wallheaven) + p = 'data-wallpaper-id=.\d+' + url = 'https://alpha.wallhaven.cc/latest' + html = self.open_url(url) + temp_result = [] + if html == None: + QMessageBox.about(self, "壁纸大师", '网络错误,请检查网络连接后重试') + imglist = [] + else: + imglist = re.findall(p, html) + print(imglist) + if imglist != []: + picture_id = imglist[0].replace("data-wallpaper-id=", "").replace("\"", "") + # 获得中继网址 + temp_url = r"https://alpha.wallhaven.cc/wallpaper/" + str(picture_id) + temp_html = self.open_url(temp_url) + if temp_html == None: + QMessageBox.about(self, "壁纸大师", '网络错误,请检查网络连接后重试') + temp_result = [] + else: + q = '' + temp_result = re.findall(q, temp_html) + if temp_result != []: + temp_result[0] = temp_result[0].replace('", "").replace( + "\"", + "") + print(temp_result[0]) + # 得到图片类型 + filetype = temp_result[0].split('.')[-1] + print(filetype) + # 获得图片最终网址 + result = 'https:' + str(temp_result[0]) + print(result) + # 获得系统时间作为文件名 + time.localtime(time.time()) + # 针对该网站每日多张的特殊情况修改文件命名方式 + n = time.strftime('%Y-%m-%d-%H', time.localtime(time.time())) + # 设定文件名 + filename = 'wallhaven-' + str(n) + '.' + str(filetype) + print(filename) + # 判断当前文件夹是否存在 + if not os.path.exists(local_wallheaven): + os.mkdir(local_wallheaven) + # 判断当前壁纸是否存在 + if os.path.isfile(local_wallheaven + "\\" + filename): + print("您今天已经更换过壁纸了") + else: + # 保存壁纸文件,返回文件位置。直接使用urllib.request.urlretrieve函数会被封,必须增加opener + print("hhh") + opener = urllib.request.build_opener() + opener.addheaders = [('User-Agent', + 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1941.0 Safari/537.36')] + urllib.request.install_opener(opener) + urllib.request.urlretrieve(result, local_wallheaven + "\\" + filename) + imagepath = local_wallheaven + "\\" + filename + print(imagepath) + setWallpaper(imagepath) + else: + pass + else: + pass + +# 设置壁纸函数(共用) +def setWallpaper(imagepath): + k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, win32con.KEY_SET_VALUE) + # 2拉伸适应桌面,0桌面居中 + win32api.RegSetValueEx(k, "WallpaperStyle", 0, win32con.REG_SZ, "2") + win32api.RegSetValueEx(k, "TileWallpaper", 0, win32con.REG_SZ, "0") + win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, imagepath, 1+2) + +if __name__ == '__main__': + app = QApplication(sys.argv) + window = Window() + window.show() + sys.exit(app.exec_()) \ No newline at end of file diff --git a/background.jpg b/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b36bce031411fae9b2e688a8ca48a04abb8a3c1b GIT binary patch literal 31327 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�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 MtRDU#seCm4e+yM`5dZ)H literal 0 HcmV?d00001 diff --git a/close.ico b/close.ico new file mode 100644 index 0000000000000000000000000000000000000000..75948abb57138c71609ef0e938a48463f1364af8 GIT binary patch literal 67646 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 JBlEQ*{|CwWAASG; literal 0 HcmV?d00001 diff --git a/folder.ico b/folder.ico new file mode 100644 index 0000000000000000000000000000000000000000..b65ef13ca025b97c9afee76a64caa06f25eff673 GIT binary patch literal 59198 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 literal 0 HcmV?d00001