├── .gitattributes ├── .gitignore ├── 0.png ├── 111.qrc ├── 355983.jpg ├── AutoWpChange_V4.pyw ├── AutoWpChange_V4 └── AutoWpChange_V4 │ ├── Scripts │ ├── Activate.ps1 │ ├── AutoWpChange_V4.pyw │ ├── MinUI.py │ ├── Minsize.ico │ ├── NewIcon.ico │ ├── RefreshSetting.Sr │ ├── ToPackage.txt │ ├── activate │ ├── activate.bat │ ├── deactivate.bat │ ├── f2py.exe │ ├── fonttools.exe │ ├── helpviewer.exe │ ├── img2png.exe │ ├── img2py.exe │ ├── img2xpm.exe │ ├── my_resources_rc.py │ ├── normalizer.exe │ ├── nuitka-crash-report.xml │ ├── nuitka-run.cmd │ ├── nuitka.cmd │ ├── pip.exe │ ├── pip3.10.exe │ ├── pip3.exe │ ├── pycrust.exe │ ├── pyftmerge.exe │ ├── pyftsubset.exe │ ├── pyshell.exe │ ├── pyside6-assistant.exe │ ├── pyside6-deploy.exe │ ├── pyside6-designer.exe │ ├── pyside6-genpyi.exe │ ├── pyside6-linguist.exe │ ├── pyside6-lrelease.exe │ ├── pyside6-lupdate.exe │ ├── pyside6-metaobjectdump.exe │ ├── pyside6-project.exe │ ├── pyside6-qml.exe │ ├── pyside6-qmlformat.exe │ ├── pyside6-qmlimportscanner.exe │ ├── pyside6-qmllint.exe │ ├── pyside6-qmlls.exe │ ├── pyside6-qmltyperegistrar.exe │ ├── pyside6-qtpy2cpp.exe │ ├── pyside6-rcc.exe │ ├── pyside6-uic.exe │ ├── pyslices.exe │ ├── pyslicesshell.exe │ ├── python.exe │ ├── python_d.exe │ ├── pythonw.exe │ ├── pythonw_d.exe │ ├── pywin32_postinstall.py │ ├── pywin32_testall.py │ ├── pywxrc.exe │ ├── requirements.txt │ ├── ttx.exe │ ├── wxdemo.exe │ ├── wxdocs.exe │ └── wxget.exe │ ├── pyvenv.cfg │ └── share │ └── man │ └── man1 │ └── ttx.1 ├── BACKIMG1 - 副本.png ├── BACKIMG1.png ├── BACKIMG2.png ├── BACKIMG3.png ├── BACKIMG4.png ├── BACKIMG5.png ├── CFCAB3C0EB852B1A3E648F454A2527D7.jpg ├── ChoseBirthday.ui ├── Dialog.pyw ├── Dialog.ui ├── LICENSE ├── Minsize.ico ├── NewIcon.ico ├── None.ico ├── Pipfile ├── Pipfile.lock ├── README.md ├── RefreshSetting.Sr ├── Set_Wallpaper.exe ├── TagsSelector ├── index.html ├── script.js └── styles.css ├── V4-About.ui ├── V4-NewMinsize.ui ├── V4About.py ├── V4Kernel.py ├── V4Main.pyw ├── V4Resources.py ├── V4Resources.qrc ├── V4TrayIcon.py ├── Wallpaper_Generator.exe ├── Wallpaper_Gradient.exe ├── about.qrc ├── ads.html ├── donate.html ├── generate_settings.Sr ├── my_resources_rc.py ├── old-versions ├── V1 │ └── 壁纸生成器.pyw ├── V2.1 │ └── 壁纸生成器V2.1.py ├── V2 │ ├── 2.0资源.qrc │ ├── MainWindowV2.py │ └── 壁纸生成器V2.py └── V3 │ ├── BACKIMG.png │ ├── PNG │ ├── BACKIMG.png │ ├── Win11Color.png │ ├── Win11Color1.png │ ├── oyama-mahiro-ai~1.png │ └── oyama-mahiro-ai~2.png │ ├── Wallpapers │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ └── 6.png │ ├── batch.py │ ├── batch.ui │ ├── batch_window.py │ ├── bikini60s_cloud-download.ico │ ├── bikini60s_cloud-download.svg │ ├── bikini60s_layers.ico │ ├── bikini60s_layers.svg │ ├── progress.py │ ├── progress.ui │ ├── test.py │ ├── untitled.ui │ ├── 壁纸生成器V3.py │ └── 插件-自动换壁纸 │ ├── AutoWpChange.lnk │ ├── AutoWpChange_V2.pyw │ ├── Automatic_WallPaper_Change.pyw │ ├── Bg.jpg │ ├── DingTalk_JinBuTi_Regular.ttf │ ├── JPG.qrc │ ├── RefreshSetting.Sr │ ├── ico.ico │ ├── taskkill.cmd │ ├── test.py │ ├── wallpaper (2).bmp │ ├── wallpaper (3).bmp │ ├── wallpaper.bmp │ ├── wallpaper.png │ ├── 受限制的(学校专用) │ └── limit.ini │ ├── 启动.lnk │ ├── 壁纸生成器-自动壁纸设置界面.exe.config │ ├── 壁纸生成器-自动壁纸设置界面.pdb │ ├── 壁纸生成器-自动壁纸设置界面.xml │ ├── 废稿.py │ ├── 托盘程序设置UI.py │ └── 托盘程序设置UI.ui ├── output.png ├── output.txt ├── requirements.txt ├── v4-NewUi.ui ├── v4-testUI.ui ├── wallpaper.bmp ├── 受限制的(学校专用) └── limit.ini └── 启动.lnk /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 壁纸生成器安装程序.exe filter=lfs diff=lfs merge=lfs -text 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | share/python-wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | MANIFEST 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .nox/ 43 | .coverage 44 | .coverage.* 45 | .cache 46 | nosetests.xml 47 | coverage.xml 48 | *.cover 49 | *.py,cover 50 | .hypothesis/ 51 | .pytest_cache/ 52 | cover/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | .pybuilder/ 76 | target/ 77 | 78 | # Jupyter Notebook 79 | .ipynb_checkpoints 80 | 81 | # IPython 82 | profile_default/ 83 | ipython_config.py 84 | 85 | # pyenv 86 | # For a library or package, you might want to ignore these files since the code is 87 | # intended to run in multiple environments; otherwise, check them in: 88 | # .python-version 89 | 90 | # pipenv 91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 94 | # install all needed dependencies. 95 | #Pipfile.lock 96 | 97 | # poetry 98 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 99 | # This is especially recommended for binary packages to ensure reproducibility, and is more 100 | # commonly ignored for libraries. 101 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 102 | #poetry.lock 103 | 104 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 105 | __pypackages__/ 106 | 107 | # Celery stuff 108 | celerybeat-schedule 109 | celerybeat.pid 110 | 111 | # SageMath parsed files 112 | *.sage.py 113 | 114 | # Environments 115 | .env 116 | .venv 117 | env/ 118 | venv/ 119 | ENV/ 120 | env.bak/ 121 | venv.bak/ 122 | 123 | # Spyder project settings 124 | .spyderproject 125 | .spyproject 126 | 127 | # Rope project settings 128 | .ropeproject 129 | 130 | # mkdocs documentation 131 | /site 132 | 133 | # mypy 134 | .mypy_cache/ 135 | .dmypy.json 136 | dmypy.json 137 | 138 | # Pyre type checker 139 | .pyre/ 140 | 141 | # pytype static type analyzer 142 | .pytype/ 143 | 144 | # Cython debug symbols 145 | cython_debug/ 146 | 147 | # PyCharm 148 | # JetBrains specific template is maintainted in a separate JetBrains.gitignore that can 149 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 150 | # and can be added to the global gitignore or merged into this file. For a more nuclear 151 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 152 | #.idea/ 153 | 插件-自动换壁纸/AI画图 - 单个类型自动更换壁纸的插件.zip 154 | 插件-自动换壁纸/AI画图 - 单个类型自动更换壁纸的插件.zip 155 | 壁纸生成器_Setup_File-cache/part3/壁纸生成器安装程序1.cab 156 | 157 | #Generated 158 | /generated_pixmap/ 159 | 160 | *.yaml 161 | -------------------------------------------------------------------------------- /0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/0.png -------------------------------------------------------------------------------- /111.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | CFCAB3C0EB852B1A3E648F454A2527D7.jpg 4 | 【哲风壁纸】2024-08-06 23_08_40.png 5 | 6 | 7 | -------------------------------------------------------------------------------- /355983.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/355983.jpg -------------------------------------------------------------------------------- /AutoWpChange_V4.pyw: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # coding=utf-8 3 | 4 | import sys 5 | from PySide6.QtWidgets import QApplication, QDialog, QMainWindow, QMessageBox 6 | import requests 7 | import json 8 | import tkinter 9 | import matplotlib.pyplot as plt 10 | import os 11 | from threading import Thread 12 | import easygui 13 | import time 14 | import ctypes #这个库将会用到 15 | import webbrowser as web 16 | import wx.adv 17 | import psutil 18 | from tkinter import messagebox 19 | from V4TrayIcon import Ui_MainWindow 20 | 21 | # 获取程序所在的目录 22 | # script_path = sys.executable 23 | # script_directory = os.path.dirname(script_path) 24 | app_dir = os.path.dirname(os.path.realpath(sys.argv[0])) 25 | # 修改当前工作目录为程序所在的目录 26 | os.chdir(app_dir) 27 | print(app_dir) 28 | 29 | user_setting = [] 30 | script_path = sys.argv[0] 31 | script_directory = os.path.dirname(script_path) 32 | root_path = script_directory + os.sep 33 | 34 | 35 | # def closeEvent(self, event): 36 | # # 忽略关闭事件 37 | # event.ignore() 38 | # msg_box = QMessageBox() 39 | # msg_box.setWindowTitle("确认您的配置") 40 | # msg_box.setText( 41 | # "在配置好自动更换壁纸的设置后,请点击窗口下方的 “不保存关闭” 或 “保存并关闭” 按钮以关闭设置界面。") 42 | # msg_box.setIcon(QMessageBox.Icon.Warning) 43 | # msg_box.setStandardButtons(QMessageBox.StandardButton.Ok) 44 | # msg_box.show() 45 | # msg_box.exec() 46 | 47 | def ifAdmin(): 48 | try: 49 | return ctypes.windll.shell32.IsUserAnAdmin() 50 | except: 51 | return False 52 | 53 | def is_process_running(process_name): 54 | for proc in psutil.process_iter(['name']): 55 | if proc.info['name'] == process_name: 56 | return True 57 | return False 58 | 59 | root = tkinter.Tk() 60 | root.withdraw() 61 | 62 | def settings(): 63 | 64 | window = Ui_MainWindow() 65 | window.setupUi(window) 66 | window.show() 67 | app.exec() 68 | 69 | # if is_process_running('自动更换壁纸.exe'): 70 | # pass 71 | # else: 72 | # os.startfile('自动更换壁纸.exe') 73 | 74 | def notify(): 75 | print("5") 76 | 77 | # self.icon.notify("壁纸刷新成功", "AI画图 - 新壁纸") 78 | notification2.Close() 79 | notification3.Close() 80 | notification1.Show() 81 | 82 | def error(): 83 | 84 | notification1.Close() 85 | notification3.Close() 86 | notification2.Show() 87 | # global icon 88 | # self.icon.notify("壁纸刷新失败,请多次重试", "AI画图 - 未能刷新壁纸") 89 | 90 | def handrefresh(): 91 | 92 | notification1.Close() 93 | notification2.Close() 94 | notification3.Show() 95 | #notification.Close 96 | # global icon 97 | # self.icon.notify("请等待,壁纸即将刷新", "开始") 98 | 99 | refresh() 100 | 101 | 102 | def end(): 103 | os._exit(0) 104 | 105 | #def tray_process_func(): 106 | def refresh(): 107 | print('3') 108 | global user_setting 109 | 110 | with open(root_path + "RefreshSetting.Sr", "r") as file: 111 | user_setting = file.read() 112 | 113 | if 'PC' in user_setting: 114 | api = "https://api.iw233.cn/api.php?sort=pc" 115 | elif 'Starry' in user_setting: 116 | api = "https://api.iw233.cn/api.php?sort=xing" 117 | elif 'Top' in user_setting: 118 | api = "https://api.iw233.cn/api.php?sort=top" 119 | else: 120 | api = "https://api.iw233.cn/api.php?sort=random" 121 | 122 | print(api) 123 | 124 | parameters = { 125 | "type": "json", 126 | 'num': 1 127 | } 128 | try: 129 | print('4') 130 | response = requests.get(api, params=parameters) 131 | # print(response.text()) 132 | outputurl = json.dumps(response.json()) 133 | print(outputurl) 134 | output = outputurl[10:-3] 135 | 136 | image = requests.get(output) 137 | 138 | with open(root_path + 'wallpaper.bmp', 'wb') as f: 139 | f.write(image.content) # 保存图片 140 | 141 | img = plt.imread(root_path + 'wallpaper.bmp') 142 | path = os.path.abspath(root_path + 'wallpaper.bmp') 143 | # win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,path, win32con.SPIF_SENDWININICHANGE) 144 | ctypes.windll.user32.SystemParametersInfoW(20, 0, path, 3) 145 | print(path) 146 | notify() 147 | except: 148 | print('5') 149 | time.sleep(1) 150 | error() 151 | easygui.exceptionbox() 152 | 153 | class MyTaskBarIcon(wx.adv.TaskBarIcon): 154 | def __init__(self): 155 | super().__init__() 156 | self.SetIcon(wx.Icon(root_path + 'NewIcon.ico'), '壁纸生成器 - 托盘程序') 157 | self.Bind(wx.adv.EVT_TASKBAR_LEFT_DCLICK, self.on_left_click) 158 | # self.tray_app = icon_set(MainWindow, ui, open_window) 159 | 160 | def CreatePopupMenu(self): 161 | # 创建弹出菜单 162 | menu = wx.Menu() 163 | menu.Append(1, '立刻生成并刷新壁纸') 164 | menu.Append(2, '打开生成设置') 165 | menu.AppendSeparator() 166 | menu.Append(3, '退出(若设定了开机启动,下次开机仍会启动)') 167 | menu.AppendSeparator() 168 | menu.Append(4, '捐赠几行代码,助力我们高效开发') 169 | self.Bind(wx.EVT_MENU, self.on_menu_1_select, id=1) 170 | self.Bind(wx.EVT_MENU, self.on_menu_2_select, id=2) 171 | self.Bind(wx.EVT_MENU, self.on_menu_3_select, id=3) 172 | self.Bind(wx.EVT_MENU, self.juanzeng, id=4) 173 | return menu 174 | 175 | def on_left_click(self, event): 176 | handrefresh() 177 | 178 | 179 | def on_menu_1_select(self, event): 180 | if os.path.isfile(root_path + "RefreshSetting.Sr") == False: 181 | settings() 182 | messagebox.showinfo("提示", "你还没有刷新壁纸的配置,请进行配置") 183 | else: 184 | handrefresh() 185 | 186 | 187 | def on_menu_2_select(self, event): 188 | settings() 189 | 190 | def on_menu_3_select(self, event): 191 | end() 192 | 193 | def juanzeng(self, event): 194 | web.open('https://afdian.com/a/srinternet') 195 | 196 | 197 | if __name__ == '__main__': 198 | 199 | if ifAdmin(): 200 | app = QApplication(sys.argv) 201 | thr = Thread(target=refresh) 202 | 203 | if os.path.isfile(root_path + "RefreshSetting.Sr") == False: 204 | settings() 205 | else: 206 | with open(root_path + "RefreshSetting.Sr", "r") as file: 207 | user_setting = file.read() 208 | print('1') 209 | print(user_setting) 210 | if 'AutoChange' in user_setting: 211 | thr.start() 212 | print('2') 213 | 214 | app1 = wx.App(False) 215 | 216 | # 创建任务栏图标对象 217 | task_bar_icon = MyTaskBarIcon() 218 | 219 | notification1 = wx.adv.NotificationMessage( 220 | title="ACG生成 - 新壁纸", 221 | message="壁纸刷新成功", 222 | parent=None, 223 | flags=wx.ICON_INFORMATION 224 | ) 225 | notification2 = wx.adv.NotificationMessage( 226 | title="ACG生成 - 未能刷新壁纸", 227 | message="壁纸刷新失败,错误报告已生成", 228 | parent=None, 229 | flags=wx.ICON_WARNING 230 | ) 231 | notification3 = wx.adv.NotificationMessage( 232 | title="开始", 233 | message="请等待,壁纸即将刷新", 234 | parent=None, 235 | flags=wx.ICON_INFORMATION 236 | ) 237 | 238 | app1.MainLoop() 239 | 240 | else: 241 | messagebox.showinfo("提示", "请以管理员身份运行本程序,否则可能会出现错误。") 242 | -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/AutoWpChange_V4.pyw: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # coding=utf-8 3 | 4 | import sys 5 | from PySide6.QtWidgets import QApplication, QDialog, QMainWindow, QMessageBox 6 | import requests 7 | import json 8 | import tkinter 9 | import matplotlib.pyplot as plt 10 | import os 11 | from threading import Thread 12 | import easygui 13 | import time 14 | import ctypes #这个库将会用到 15 | import webbrowser as web 16 | import wx.adv 17 | import psutil 18 | from tkinter import messagebox 19 | from 壁纸生成器V4托盘 import Ui_MainWindow 20 | 21 | # 获取程序所在的目录 22 | # script_path = sys.executable 23 | # script_directory = os.path.dirname(script_path) 24 | app_dir = os.path.dirname(os.path.realpath(sys.argv[0])) 25 | # 修改当前工作目录为程序所在的目录 26 | os.chdir(app_dir) 27 | print(app_dir) 28 | 29 | user_setting = [] 30 | script_path = sys.argv[0] 31 | script_directory = os.path.dirname(script_path) 32 | root_path = script_directory + os.sep 33 | 34 | 35 | # def closeEvent(self, event): 36 | # # 忽略关闭事件 37 | # event.ignore() 38 | # msg_box = QMessageBox() 39 | # msg_box.setWindowTitle("确认您的配置") 40 | # msg_box.setText( 41 | # "在配置好自动更换壁纸的设置后,请点击窗口下方的 “不保存关闭” 或 “保存并关闭” 按钮以关闭设置界面。") 42 | # msg_box.setIcon(QMessageBox.Icon.Warning) 43 | # msg_box.setStandardButtons(QMessageBox.StandardButton.Ok) 44 | # msg_box.show() 45 | # msg_box.exec() 46 | 47 | def ifAdmin(): 48 | try: 49 | return ctypes.windll.shell32.IsUserAnAdmin() 50 | except: 51 | return False 52 | 53 | def is_process_running(process_name): 54 | for proc in psutil.process_iter(['name']): 55 | if proc.info['name'] == process_name: 56 | return True 57 | return False 58 | 59 | root = tkinter.Tk() 60 | root.withdraw() 61 | 62 | def settings(): 63 | 64 | window = Ui_MainWindow() 65 | window.setupUi(window) 66 | window.show() 67 | app.exec() 68 | 69 | # if is_process_running('自动更换壁纸.exe'): 70 | # pass 71 | # else: 72 | # os.startfile('自动更换壁纸.exe') 73 | 74 | def notify(): 75 | print("5") 76 | 77 | # self.icon.notify("壁纸刷新成功", "AI画图 - 新壁纸") 78 | notification2.Close() 79 | notification3.Close() 80 | notification1.Show() 81 | 82 | def error(): 83 | 84 | notification1.Close() 85 | notification3.Close() 86 | notification2.Show() 87 | # global icon 88 | # self.icon.notify("壁纸刷新失败,请多次重试", "AI画图 - 未能刷新壁纸") 89 | 90 | def handrefresh(): 91 | 92 | notification1.Close() 93 | notification2.Close() 94 | notification3.Show() 95 | #notification.Close 96 | # global icon 97 | # self.icon.notify("请等待,壁纸即将刷新", "开始") 98 | 99 | refresh() 100 | 101 | 102 | def end(): 103 | os._exit(0) 104 | 105 | #def tray_process_func(): 106 | def refresh(): 107 | print('3') 108 | global user_setting 109 | 110 | with open(root_path + "RefreshSetting.Sr", "r") as file: 111 | user_setting = file.read() 112 | 113 | if 'PC' in user_setting: 114 | api = "https://api.iw233.cn/api.php?sort=pc" 115 | elif 'Starry' in user_setting: 116 | api = "https://api.iw233.cn/api.php?sort=xing" 117 | elif 'Top' in user_setting: 118 | api = "https://api.iw233.cn/api.php?sort=top" 119 | else: 120 | api = "https://api.iw233.cn/api.php?sort=random" 121 | 122 | print(api) 123 | 124 | parameters = { 125 | "type": "json", 126 | 'num': 1 127 | } 128 | try: 129 | print('4') 130 | response = requests.get(api, params=parameters) 131 | # print(response.text()) 132 | outputurl = json.dumps(response.json()) 133 | print(outputurl) 134 | output = outputurl[10:-3] 135 | 136 | image = requests.get(output) 137 | 138 | with open(root_path + 'wallpaper.bmp', 'wb') as f: 139 | f.write(image.content) # 保存图片 140 | 141 | img = plt.imread(root_path + 'wallpaper.bmp') 142 | path = os.path.abspath(root_path + 'wallpaper.bmp') 143 | # win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,path, win32con.SPIF_SENDWININICHANGE) 144 | ctypes.windll.user32.SystemParametersInfoW(20, 0, path, 3) 145 | print(path) 146 | notify() 147 | except: 148 | print('5') 149 | time.sleep(1) 150 | error() 151 | easygui.exceptionbox() 152 | 153 | class MyTaskBarIcon(wx.adv.TaskBarIcon): 154 | def __init__(self): 155 | super().__init__() 156 | self.SetIcon(wx.Icon(root_path + 'NewIcon.ico'), '壁纸生成器 - 托盘程序') 157 | self.Bind(wx.adv.EVT_TASKBAR_LEFT_DCLICK, self.on_left_click) 158 | # self.tray_app = icon_set(MainWindow, ui, open_window) 159 | 160 | def CreatePopupMenu(self): 161 | # 创建弹出菜单 162 | menu = wx.Menu() 163 | menu.Append(1, '立刻生成并刷新壁纸') 164 | menu.Append(2, '打开生成设置') 165 | menu.AppendSeparator() 166 | menu.Append(3, '退出(若设定了开机启动,下次开机仍会启动)') 167 | menu.AppendSeparator() 168 | menu.Append(4, '捐赠几行代码,助力我们高效开发') 169 | self.Bind(wx.EVT_MENU, self.on_menu_1_select, id=1) 170 | self.Bind(wx.EVT_MENU, self.on_menu_2_select, id=2) 171 | self.Bind(wx.EVT_MENU, self.on_menu_3_select, id=3) 172 | self.Bind(wx.EVT_MENU, self.juanzeng, id=4) 173 | return menu 174 | 175 | def on_left_click(self, event): 176 | handrefresh() 177 | 178 | 179 | def on_menu_1_select(self, event): 180 | if os.path.isfile(root_path + "RefreshSetting.Sr") == False: 181 | settings() 182 | messagebox.showinfo("提示", "你还没有刷新壁纸的配置,请进行配置") 183 | else: 184 | handrefresh() 185 | 186 | 187 | def on_menu_2_select(self, event): 188 | settings() 189 | 190 | def on_menu_3_select(self, event): 191 | end() 192 | 193 | def juanzeng(self, event): 194 | web.open('https://afdian.com/a/srinternet') 195 | 196 | 197 | if __name__ == '__main__': 198 | 199 | if ifAdmin(): 200 | app = QApplication(sys.argv) 201 | thr = Thread(target=refresh) 202 | 203 | if os.path.isfile(root_path + "RefreshSetting.Sr") == False: 204 | settings() 205 | else: 206 | with open(root_path + "RefreshSetting.Sr", "r") as file: 207 | user_setting = file.read() 208 | print('1') 209 | print(user_setting) 210 | if 'AutoChange' in user_setting: 211 | thr.start() 212 | print('2') 213 | 214 | app1 = wx.App(False) 215 | 216 | # 创建任务栏图标对象 217 | task_bar_icon = MyTaskBarIcon() 218 | 219 | notification1 = wx.adv.NotificationMessage( 220 | title="ACG生成 - 新壁纸", 221 | message="壁纸刷新成功", 222 | parent=None, 223 | flags=wx.ICON_INFORMATION 224 | ) 225 | notification2 = wx.adv.NotificationMessage( 226 | title="ACG生成 - 未能刷新壁纸", 227 | message="壁纸刷新失败,错误报告已生成", 228 | parent=None, 229 | flags=wx.ICON_WARNING 230 | ) 231 | notification3 = wx.adv.NotificationMessage( 232 | title="开始", 233 | message="请等待,壁纸即将刷新", 234 | parent=None, 235 | flags=wx.ICON_INFORMATION 236 | ) 237 | 238 | app1.MainLoop() 239 | 240 | else: 241 | messagebox.showinfo("提示", "请以管理员身份运行本程序,否则可能会出现错误。") 242 | -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/Minsize.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/Minsize.ico -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/NewIcon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/NewIcon.ico -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/RefreshSetting.Sr: -------------------------------------------------------------------------------- 1 | AutoChange 2 | Ran -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/ToPackage.txt: -------------------------------------------------------------------------------- 1 | nuitka --mingw64 --show-progress --standalone --disable-console --show-progress --enable-plugin=pyside6 --plugin-enable=tk-inter --plugin-enable=numpy --windows-icon-from-ico=Minsize.ico --onefile AutoWpChange_V4.pyw 2 | 3 | 4 | --windows-company-name=SR_Studio --windows-product-name=AutoWpChange_V4 --include-module=MinUI.py 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/activate: -------------------------------------------------------------------------------- 1 | # This file must be used with "source bin/activate" *from bash* 2 | # you cannot run it directly 3 | 4 | deactivate () { 5 | # reset old environment variables 6 | if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then 7 | PATH="${_OLD_VIRTUAL_PATH:-}" 8 | export PATH 9 | unset _OLD_VIRTUAL_PATH 10 | fi 11 | if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then 12 | PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" 13 | export PYTHONHOME 14 | unset _OLD_VIRTUAL_PYTHONHOME 15 | fi 16 | 17 | # This should detect bash and zsh, which have a hash command that must 18 | # be called to get it to forget past commands. Without forgetting 19 | # past commands the $PATH changes we made may not be respected 20 | if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then 21 | hash -r 2> /dev/null 22 | fi 23 | 24 | if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then 25 | PS1="${_OLD_VIRTUAL_PS1:-}" 26 | export PS1 27 | unset _OLD_VIRTUAL_PS1 28 | fi 29 | 30 | unset VIRTUAL_ENV 31 | unset VIRTUAL_ENV_PROMPT 32 | if [ ! "${1:-}" = "nondestructive" ] ; then 33 | # Self destruct! 34 | unset -f deactivate 35 | fi 36 | } 37 | 38 | # unset irrelevant variables 39 | deactivate nondestructive 40 | 41 | VIRTUAL_ENV="E:\WallpaperGenerator\AutoWpChange_V4\AutoWpChange_V4" 42 | export VIRTUAL_ENV 43 | 44 | _OLD_VIRTUAL_PATH="$PATH" 45 | PATH="$VIRTUAL_ENV/Scripts:$PATH" 46 | export PATH 47 | 48 | # unset PYTHONHOME if set 49 | # this will fail if PYTHONHOME is set to the empty string (which is bad anyway) 50 | # could use `if (set -u; : $PYTHONHOME) ;` in bash 51 | if [ -n "${PYTHONHOME:-}" ] ; then 52 | _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" 53 | unset PYTHONHOME 54 | fi 55 | 56 | if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then 57 | _OLD_VIRTUAL_PS1="${PS1:-}" 58 | PS1="(AutoWpChange_V4) ${PS1:-}" 59 | export PS1 60 | VIRTUAL_ENV_PROMPT="(AutoWpChange_V4) " 61 | export VIRTUAL_ENV_PROMPT 62 | fi 63 | 64 | # This should detect bash and zsh, which have a hash command that must 65 | # be called to get it to forget past commands. Without forgetting 66 | # past commands the $PATH changes we made may not be respected 67 | if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then 68 | hash -r 2> /dev/null 69 | fi 70 | -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/activate.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem This file is UTF-8 encoded, so we need to update the current code page while executing it 4 | for /f "tokens=2 delims=:." %%a in ('"%SystemRoot%\System32\chcp.com"') do ( 5 | set _OLD_CODEPAGE=%%a 6 | ) 7 | if defined _OLD_CODEPAGE ( 8 | "%SystemRoot%\System32\chcp.com" 65001 > nul 9 | ) 10 | 11 | set VIRTUAL_ENV=E:\WallpaperGenerator\AutoWpChange_V4\AutoWpChange_V4 12 | 13 | if not defined PROMPT set PROMPT=$P$G 14 | 15 | if defined _OLD_VIRTUAL_PROMPT set PROMPT=%_OLD_VIRTUAL_PROMPT% 16 | if defined _OLD_VIRTUAL_PYTHONHOME set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME% 17 | 18 | set _OLD_VIRTUAL_PROMPT=%PROMPT% 19 | set PROMPT=(AutoWpChange_V4) %PROMPT% 20 | 21 | if defined PYTHONHOME set _OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME% 22 | set PYTHONHOME= 23 | 24 | if defined _OLD_VIRTUAL_PATH set PATH=%_OLD_VIRTUAL_PATH% 25 | if not defined _OLD_VIRTUAL_PATH set _OLD_VIRTUAL_PATH=%PATH% 26 | 27 | set PATH=%VIRTUAL_ENV%\Scripts;%PATH% 28 | set VIRTUAL_ENV_PROMPT=(AutoWpChange_V4) 29 | 30 | :END 31 | if defined _OLD_CODEPAGE ( 32 | "%SystemRoot%\System32\chcp.com" %_OLD_CODEPAGE% > nul 33 | set _OLD_CODEPAGE= 34 | ) 35 | -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/deactivate.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | if defined _OLD_VIRTUAL_PROMPT ( 4 | set "PROMPT=%_OLD_VIRTUAL_PROMPT%" 5 | ) 6 | set _OLD_VIRTUAL_PROMPT= 7 | 8 | if defined _OLD_VIRTUAL_PYTHONHOME ( 9 | set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%" 10 | set _OLD_VIRTUAL_PYTHONHOME= 11 | ) 12 | 13 | if defined _OLD_VIRTUAL_PATH ( 14 | set "PATH=%_OLD_VIRTUAL_PATH%" 15 | ) 16 | 17 | set _OLD_VIRTUAL_PATH= 18 | 19 | set VIRTUAL_ENV= 20 | set VIRTUAL_ENV_PROMPT= 21 | 22 | :END 23 | -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/f2py.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/f2py.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/fonttools.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/fonttools.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/helpviewer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/helpviewer.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/img2png.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/img2png.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/img2py.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/img2py.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/img2xpm.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/img2xpm.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/normalizer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/normalizer.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/nuitka-run.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file 3 | 4 | 5 | setlocal 6 | 7 | "%~dp0nuitka.cmd --run %*" 8 | 9 | endlocal 10 | 11 | rem Part of "Nuitka", an optimizing Python compiler that is compatible and 12 | rem integrates with CPython, but also works on its own. 13 | rem 14 | rem Licensed under the Apache License, Version 2.0 (the "License"); 15 | rem you may not use this file except in compliance with the License. 16 | rem You may obtain a copy of the License at 17 | rem 18 | rem http://www.apache.org/licenses/LICENSE-2.0 19 | rem 20 | rem Unless required by applicable law or agreed to in writing, software 21 | rem distributed under the License is distributed on an "AS IS" BASIS, 22 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 23 | rem See the License for the specific language governing permissions and 24 | rem limitations under the License. 25 | -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/nuitka.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file 3 | 4 | 5 | setlocal 6 | 7 | if exist "%~dp0..\python.exe" ( 8 | "%~dp0..\python" -m nuitka %* 9 | ) else if exist "%~dp0python.exe" ( 10 | "%~dp0python" -m nuitka %* 11 | ) else ( 12 | "python" -m nuitka %* 13 | ) 14 | 15 | endlocal 16 | 17 | rem Part of "Nuitka", an optimizing Python compiler that is compatible and 18 | rem integrates with CPython, but also works on its own. 19 | rem 20 | rem Licensed under the Apache License, Version 2.0 (the "License"); 21 | rem you may not use this file except in compliance with the License. 22 | rem You may obtain a copy of the License at 23 | rem 24 | rem http://www.apache.org/licenses/LICENSE-2.0 25 | rem 26 | rem Unless required by applicable law or agreed to in writing, software 27 | rem distributed under the License is distributed on an "AS IS" BASIS, 28 | rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 29 | rem See the License for the specific language governing permissions and 30 | rem limitations under the License. 31 | -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pip.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pip.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pip3.10.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pip3.10.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pip3.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pip3.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pycrust.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pycrust.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyftmerge.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyftmerge.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyftsubset.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyftsubset.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyshell.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyshell.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-assistant.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-assistant.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-deploy.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-deploy.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-designer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-designer.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-genpyi.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-genpyi.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-linguist.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-linguist.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-lrelease.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-lrelease.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-lupdate.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-lupdate.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-metaobjectdump.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-metaobjectdump.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-project.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-project.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qml.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qml.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qmlformat.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qmlformat.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qmlimportscanner.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qmlimportscanner.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qmllint.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qmllint.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qmlls.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qmlls.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qmltyperegistrar.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qmltyperegistrar.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qtpy2cpp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-qtpy2cpp.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-rcc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-rcc.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-uic.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyside6-uic.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyslices.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyslices.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pyslicesshell.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pyslicesshell.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/python.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/python.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/python_d.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/python_d.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pythonw.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pythonw.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pythonw_d.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pythonw_d.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pywin32_testall.py: -------------------------------------------------------------------------------- 1 | """A test runner for pywin32""" 2 | import os 3 | import site 4 | import subprocess 5 | import sys 6 | 7 | # locate the dirs based on where this script is - it may be either in the 8 | # source tree, or in an installed Python 'Scripts' tree. 9 | this_dir = os.path.dirname(__file__) 10 | site_packages = [ 11 | site.getusersitepackages(), 12 | ] + site.getsitepackages() 13 | 14 | failures = [] 15 | 16 | 17 | # Run a test using subprocess and wait for the result. 18 | # If we get an returncode != 0, we know that there was an error, but we don't 19 | # abort immediately - we run as many tests as we can. 20 | def run_test(script, cmdline_extras): 21 | dirname, scriptname = os.path.split(script) 22 | # some tests prefer to be run from their directory. 23 | cmd = [sys.executable, "-u", scriptname] + cmdline_extras 24 | print("--- Running '%s' ---" % script) 25 | sys.stdout.flush() 26 | result = subprocess.run(cmd, check=False, cwd=dirname) 27 | print("*** Test script '%s' exited with %s" % (script, result.returncode)) 28 | sys.stdout.flush() 29 | if result.returncode: 30 | failures.append(script) 31 | 32 | 33 | def find_and_run(possible_locations, extras): 34 | for maybe in possible_locations: 35 | if os.path.isfile(maybe): 36 | run_test(maybe, extras) 37 | break 38 | else: 39 | raise RuntimeError( 40 | "Failed to locate a test script in one of %s" % possible_locations 41 | ) 42 | 43 | 44 | def main(): 45 | import argparse 46 | 47 | code_directories = [this_dir] + site_packages 48 | 49 | parser = argparse.ArgumentParser( 50 | description="A script to trigger tests in all subprojects of PyWin32." 51 | ) 52 | parser.add_argument( 53 | "-no-user-interaction", 54 | default=False, 55 | action="store_true", 56 | help="(This is now the default - use `-user-interaction` to include them)", 57 | ) 58 | 59 | parser.add_argument( 60 | "-user-interaction", 61 | action="store_true", 62 | help="Include tests which require user interaction", 63 | ) 64 | 65 | parser.add_argument( 66 | "-skip-adodbapi", 67 | default=False, 68 | action="store_true", 69 | help="Skip the adodbapi tests; useful for CI where there's no provider", 70 | ) 71 | 72 | args, remains = parser.parse_known_args() 73 | 74 | # win32, win32ui / Pythonwin 75 | 76 | extras = [] 77 | if args.user_interaction: 78 | extras += ["-user-interaction"] 79 | extras.extend(remains) 80 | scripts = [ 81 | "win32/test/testall.py", 82 | "Pythonwin/pywin/test/all.py", 83 | ] 84 | for script in scripts: 85 | maybes = [os.path.join(directory, script) for directory in code_directories] 86 | find_and_run(maybes, extras) 87 | 88 | # win32com 89 | maybes = [ 90 | os.path.join(directory, "win32com", "test", "testall.py") 91 | for directory in [ 92 | os.path.join(this_dir, "com"), 93 | ] 94 | + site_packages 95 | ] 96 | extras = remains + ["1"] # only run "level 1" tests in CI 97 | find_and_run(maybes, extras) 98 | 99 | # adodbapi 100 | if not args.skip_adodbapi: 101 | maybes = [ 102 | os.path.join(directory, "adodbapi", "test", "adodbapitest.py") 103 | for directory in code_directories 104 | ] 105 | find_and_run(maybes, remains) 106 | # This script has a hard-coded sql server name in it, (and markh typically 107 | # doesn't have a different server to test on) but there is now supposed to be a server out there on the Internet 108 | # just to run these tests, so try it... 109 | maybes = [ 110 | os.path.join(directory, "adodbapi", "test", "test_adodbapi_dbapi20.py") 111 | for directory in code_directories 112 | ] 113 | find_and_run(maybes, remains) 114 | 115 | if failures: 116 | print("The following scripts failed") 117 | for failure in failures: 118 | print(">", failure) 119 | sys.exit(1) 120 | print("All tests passed \\o/") 121 | 122 | 123 | if __name__ == "__main__": 124 | main() 125 | -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/pywxrc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/pywxrc.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/requirements.txt: -------------------------------------------------------------------------------- 1 | easygui==0.98.3 2 | numpy==1.26.4 3 | PySide6==6.4.2 4 | Pyside6-Fluent-Widgets==1.6.0 5 | Pillow==10.4.0 6 | wxpython==4.2.1 7 | psutil==5.9.8 8 | matplotlib==3.6.2 9 | requests==2.31.0 -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/ttx.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/ttx.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/wxdemo.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/wxdemo.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/wxdocs.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/wxdocs.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/Scripts/wxget.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/AutoWpChange_V4/AutoWpChange_V4/Scripts/wxget.exe -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/pyvenv.cfg: -------------------------------------------------------------------------------- 1 | home = C:\Program Files\Python310 2 | include-system-site-packages = false 3 | version = 3.10.6 4 | -------------------------------------------------------------------------------- /AutoWpChange_V4/AutoWpChange_V4/share/man/man1/ttx.1: -------------------------------------------------------------------------------- 1 | .Dd May 18, 2004 2 | .\" ttx is not specific to any OS, but contrary to what groff_mdoc(7) 3 | .\" seems to imply, entirely omitting the .Os macro causes 'BSD' to 4 | .\" be used, so I give a zero-width space as its argument. 5 | .Os \& 6 | .\" The "FontTools Manual" argument apparently has no effect in 7 | .\" groff 1.18.1. I think it is a bug in the -mdoc groff package. 8 | .Dt TTX 1 "FontTools Manual" 9 | .Sh NAME 10 | .Nm ttx 11 | .Nd tool for manipulating TrueType and OpenType fonts 12 | .Sh SYNOPSIS 13 | .Nm 14 | .Bk 15 | .Op Ar option ... 16 | .Ek 17 | .Bk 18 | .Ar file ... 19 | .Ek 20 | .Sh DESCRIPTION 21 | .Nm 22 | is a tool for manipulating TrueType and OpenType fonts. It can convert 23 | TrueType and OpenType fonts to and from an 24 | .Tn XML Ns -based format called 25 | .Tn TTX . 26 | .Tn TTX 27 | files have a 28 | .Ql .ttx 29 | extension. 30 | .Pp 31 | For each 32 | .Ar file 33 | argument it is given, 34 | .Nm 35 | detects whether it is a 36 | .Ql .ttf , 37 | .Ql .otf 38 | or 39 | .Ql .ttx 40 | file and acts accordingly: if it is a 41 | .Ql .ttf 42 | or 43 | .Ql .otf 44 | file, it generates a 45 | .Ql .ttx 46 | file; if it is a 47 | .Ql .ttx 48 | file, it generates a 49 | .Ql .ttf 50 | or 51 | .Ql .otf 52 | file. 53 | .Pp 54 | By default, every output file is created in the same directory as the 55 | corresponding input file and with the same name except for the 56 | extension, which is substituted appropriately. 57 | .Nm 58 | never overwrites existing files; if necessary, it appends a suffix to 59 | the output file name before the extension, as in 60 | .Pa Arial#1.ttf . 61 | .Ss "General options" 62 | .Bl -tag -width ".Fl t Ar table" 63 | .It Fl h 64 | Display usage information. 65 | .It Fl d Ar dir 66 | Write the output files to directory 67 | .Ar dir 68 | instead of writing every output file to the same directory as the 69 | corresponding input file. 70 | .It Fl o Ar file 71 | Write the output to 72 | .Ar file 73 | instead of writing it to the same directory as the 74 | corresponding input file. 75 | .It Fl v 76 | Be verbose. Write more messages to the standard output describing what 77 | is being done. 78 | .It Fl a 79 | Allow virtual glyphs ID's on compile or decompile. 80 | .El 81 | .Ss "Dump options" 82 | The following options control the process of dumping font files 83 | (TrueType or OpenType) to 84 | .Tn TTX 85 | files. 86 | .Bl -tag -width ".Fl t Ar table" 87 | .It Fl l 88 | List table information. Instead of dumping the font to a 89 | .Tn TTX 90 | file, display minimal information about each table. 91 | .It Fl t Ar table 92 | Dump table 93 | .Ar table . 94 | This option may be given multiple times to dump several tables at 95 | once. When not specified, all tables are dumped. 96 | .It Fl x Ar table 97 | Exclude table 98 | .Ar table 99 | from the list of tables to dump. This option may be given multiple 100 | times to exclude several tables from the dump. The 101 | .Fl t 102 | and 103 | .Fl x 104 | options are mutually exclusive. 105 | .It Fl s 106 | Split tables. Dump each table to a separate 107 | .Tn TTX 108 | file and write (under the name that would have been used for the output 109 | file if the 110 | .Fl s 111 | option had not been given) one small 112 | .Tn TTX 113 | file containing references to the individual table dump files. This 114 | file can be used as input to 115 | .Nm 116 | as long as the referenced files can be found in the same directory. 117 | .It Fl i 118 | .\" XXX: I suppose OpenType programs (exist and) are also affected. 119 | Don't disassemble TrueType instructions. When this option is specified, 120 | all TrueType programs (glyph programs, the font program and the 121 | pre-program) are written to the 122 | .Tn TTX 123 | file as hexadecimal data instead of 124 | assembly. This saves some time and results in smaller 125 | .Tn TTX 126 | files. 127 | .It Fl y Ar n 128 | When decompiling a TrueType Collection (TTC) file, 129 | decompile font number 130 | .Ar n , 131 | starting from 0. 132 | .El 133 | .Ss "Compilation options" 134 | The following options control the process of compiling 135 | .Tn TTX 136 | files into font files (TrueType or OpenType): 137 | .Bl -tag -width ".Fl t Ar table" 138 | .It Fl m Ar fontfile 139 | Merge the input 140 | .Tn TTX 141 | file 142 | .Ar file 143 | with 144 | .Ar fontfile . 145 | No more than one 146 | .Ar file 147 | argument can be specified when this option is used. 148 | .It Fl b 149 | Don't recalculate glyph bounding boxes. Use the values in the 150 | .Tn TTX 151 | file as is. 152 | .El 153 | .Sh "THE TTX FILE FORMAT" 154 | You can find some information about the 155 | .Tn TTX 156 | file format in 157 | .Pa documentation.html . 158 | In particular, you will find in that file the list of tables understood by 159 | .Nm 160 | and the relations between TrueType GlyphIDs and the glyph names used in 161 | .Tn TTX 162 | files. 163 | .Sh EXAMPLES 164 | In the following examples, all files are read from and written to the 165 | current directory. Additionally, the name given for the output file 166 | assumes in every case that it did not exist before 167 | .Nm 168 | was invoked. 169 | .Pp 170 | Dump the TrueType font contained in 171 | .Pa FreeSans.ttf 172 | to 173 | .Pa FreeSans.ttx : 174 | .Pp 175 | .Dl ttx FreeSans.ttf 176 | .Pp 177 | Compile 178 | .Pa MyFont.ttx 179 | into a TrueType or OpenType font file: 180 | .Pp 181 | .Dl ttx MyFont.ttx 182 | .Pp 183 | List the tables in 184 | .Pa FreeSans.ttf 185 | along with some information: 186 | .Pp 187 | .Dl ttx -l FreeSans.ttf 188 | .Pp 189 | Dump the 190 | .Sq cmap 191 | table from 192 | .Pa FreeSans.ttf 193 | to 194 | .Pa FreeSans.ttx : 195 | .Pp 196 | .Dl ttx -t cmap FreeSans.ttf 197 | .Sh NOTES 198 | On MS\-Windows and MacOS, 199 | .Nm 200 | is available as a graphical application to which files can be dropped. 201 | .Sh SEE ALSO 202 | .Pa documentation.html 203 | .Pp 204 | .Xr fontforge 1 , 205 | .Xr ftinfo 1 , 206 | .Xr gfontview 1 , 207 | .Xr xmbdfed 1 , 208 | .Xr Font::TTF 3pm 209 | .Sh AUTHORS 210 | .Nm 211 | was written by 212 | .An -nosplit 213 | .An "Just van Rossum" Aq just@letterror.com . 214 | .Pp 215 | This manual page was written by 216 | .An "Florent Rougon" Aq f.rougon@free.fr 217 | for the Debian GNU/Linux system based on the existing FontTools 218 | documentation. It may be freely used, modified and distributed without 219 | restrictions. 220 | .\" For Emacs: 221 | .\" Local Variables: 222 | .\" fill-column: 72 223 | .\" sentence-end: "[.?!][]\"')}]*\\($\\| $\\| \\| \\)[ \n]*" 224 | .\" sentence-end-double-space: t 225 | .\" End: -------------------------------------------------------------------------------- /BACKIMG1 - 副本.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/BACKIMG1 - 副本.png -------------------------------------------------------------------------------- /BACKIMG1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/BACKIMG1.png -------------------------------------------------------------------------------- /BACKIMG2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/BACKIMG2.png -------------------------------------------------------------------------------- /BACKIMG3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/BACKIMG3.png -------------------------------------------------------------------------------- /BACKIMG4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/BACKIMG4.png -------------------------------------------------------------------------------- /BACKIMG5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/BACKIMG5.png -------------------------------------------------------------------------------- /CFCAB3C0EB852B1A3E648F454A2527D7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/CFCAB3C0EB852B1A3E648F454A2527D7.jpg -------------------------------------------------------------------------------- /ChoseBirthday.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Form 4 | 5 | 6 | 7 | 0 8 | 0 9 | 464 10 | 128 11 | 12 | 13 | 14 | Form 15 | 16 | 17 | 18 | 19 | 20 20 | 70 21 | 240 22 | 30 23 | 24 | 25 | 26 | 27 | 28 | 29 | 290 30 | 30 31 | 151 32 | 22 33 | 34 | 35 | 36 | 我很诚实 37 | 38 | 39 | 我很诚实 40 | 41 | 42 | 我很诚实 43 | 44 | 45 | 46 | 47 | 48 | 290 49 | 70 50 | 153 51 | 32 52 | 53 | 54 | 55 | 确认 56 | 57 | 58 | 59 | 60 | 61 | 30 62 | 20 63 | 211 64 | 38 65 | 66 | 67 | 68 | 69 | HarmonyOS Sans SC 70 | 21 71 | false 72 | 73 | 74 | 75 | 选择你的生日 76 | 77 | 78 | 79 | 80 | 81 | PushButton 82 | QPushButton 83 |
qfluentwidgets
84 |
85 | 86 | PrimaryPushButton 87 | PushButton 88 |
qfluentwidgets
89 |
90 | 91 | SwitchButton 92 | QWidget 93 |
qfluentwidgets
94 |
95 | 96 | DatePicker 97 | QPushButton 98 |
qfluentwidgets
99 |
100 | 101 | ZhDatePicker 102 | DatePicker 103 |
qfluentwidgets
104 |
105 | 106 | TitleLabel 107 | QLabel 108 |
qfluentwidgets
109 |
110 |
111 | 112 | 113 |
114 | -------------------------------------------------------------------------------- /Dialog.pyw: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | ################################################################################ 4 | ## Form generated from reading UI file 'Dialog.ui' 5 | ## 6 | ## Created by: Qt User Interface Compiler version 6.4.2 7 | ## 8 | ## WARNING! All changes made in this file will be lost when recompiling UI file! 9 | ################################################################################ 10 | 11 | from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, 12 | QMetaObject, QObject, QPoint, QRect, 13 | QSize, QTime, QUrl, Qt) 14 | from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, 15 | QFont, QFontDatabase, QGradient, QIcon, 16 | QImage, QKeySequence, QLinearGradient, QPainter, 17 | QPalette, QPixmap, QRadialGradient, QTransform, QTextOption) 18 | from PySide6.QtWidgets import (QApplication, QHBoxLayout, QSizePolicy, QTableWidgetItem, QVBoxLayout, 19 | QWidget, QDialog) 20 | 21 | from qfluentwidgets import (BodyLabel, CardWidget, PrimaryPushButton, PushButton, 22 | SimpleCardWidget, TitleLabel, TextEdit, SmoothScrollArea) 23 | 24 | class Ui_Form(QDialog): 25 | def __init__(self, title, content, TrueText, FalseText, Editable, Lists=None): 26 | super().__init__() 27 | #super().__init__() 28 | self.title = f"{title}" 29 | self.content = f"{content}" 30 | self.TrueText = f"{TrueText}" 31 | self.FalseText = f"{FalseText}" 32 | self.Editable = f"{Editable}" 33 | self.Lists = f"{Lists}" 34 | self.returned = "F" 35 | 36 | 37 | def setupUi(self, Form: QDialog): 38 | if not Form.objectName(): 39 | Form.setObjectName(u"Form") 40 | Form.setFixedSize(908, 448) 41 | Form.setStyleSheet(u"QWidget {\n" 42 | " border: none;\n" 43 | " border-radius: 15px;\n" 44 | "}") 45 | Form.setWindowFlags(Qt.WindowTitleHint) 46 | Form.setWindowIcon(QIcon("./None.ico")) 47 | 48 | self.verticalLayout = QVBoxLayout(Form) 49 | self.verticalLayout.setObjectName(u"verticalLayout") 50 | self.SimpleCardWidget = SimpleCardWidget(Form) 51 | self.SimpleCardWidget.setObjectName(u"SimpleCardWidget") 52 | self.horizontalLayout_2 = QHBoxLayout(self.SimpleCardWidget) 53 | self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") 54 | self.horizontalLayout_2.setContentsMargins(-1, 0, -1, -1) 55 | self.widget_2 = QWidget(self.SimpleCardWidget) 56 | self.widget_2.setObjectName(u"widget_2") 57 | self.verticalLayout_2 = QVBoxLayout(self.widget_2) 58 | self.verticalLayout_2.setObjectName(u"verticalLayout_2") 59 | self.TitleLabel = TitleLabel(self.widget_2) 60 | self.TitleLabel.setObjectName(u"TitleLabel") 61 | self.TitleLabel.setMaximumSize(QSize(16777215, 50)) 62 | font = QFont() 63 | font.setFamilies([u"HarmonyOS Sans SC"]) 64 | font.setPointSize(21) 65 | font.setBold(True) 66 | self.TitleLabel.setFont(font) 67 | 68 | self.verticalLayout_2.addWidget(self.TitleLabel) 69 | 70 | if self.Editable == "True": 71 | self.BodyLabel = TextEdit(self.widget_2) 72 | else: 73 | self.BodyLabel = BodyLabel(self.widget_2) 74 | 75 | self.BodyLabel.setContentsMargins(0, 0, 20, 0) 76 | self.BodyLabel.setObjectName(u"BodyLabel") 77 | self.BodyLabel.setAutoFillBackground(False) 78 | self.BodyLabel.setAlignment(Qt.AlignJustify|Qt.AlignTop) 79 | 80 | if self.Editable == "True": 81 | self.BodyLabel.setWordWrapMode(QTextOption.WrapMode.WordWrap) 82 | self.BodyLabel.setReadOnly(True) 83 | else: 84 | self.BodyLabel.setWordWrap(True) 85 | 86 | # self.tableView = TableWidget(self) 87 | # self.tableView.setBorderVisible(True) 88 | # self.tableView.setBorderRadius(8) 89 | 90 | # self.tableView.setWordWrap(False) 91 | # self.tableView.setRowCount(60) 92 | # self.tableView.setColumnCount(2) 93 | 94 | # self.Lists += self.Lists 95 | # for i, songInfo in enumerate(self.Lists): 96 | # for j in range(2): 97 | # self.tableView.setItem(i, j, QTableWidgetItem(songInfo[j])) 98 | 99 | # self.tableView.verticalHeader().hide() 100 | # self.tableView.setHorizontalHeaderLabels(['名称', '信息']) 101 | # self.tableView.resizeColumnsToContents() 102 | # 下个版本启用 103 | 104 | scroll_area = SmoothScrollArea(self) 105 | scroll_area.setStyleSheet("QScrollArea { background: transparent; }") 106 | scroll_area.setWidgetResizable(True) 107 | scroll_area.setWidget(self.BodyLabel) 108 | 109 | self.verticalLayout_2.addWidget(scroll_area) 110 | 111 | 112 | self.horizontalLayout_2.addWidget(self.widget_2) 113 | 114 | 115 | self.verticalLayout.addWidget(self.SimpleCardWidget) 116 | 117 | self.widget = QWidget(Form) 118 | self.widget.setObjectName(u"widget") 119 | self.widget.setMaximumSize(QSize(16777215, 50)) 120 | self.horizontalLayout = QHBoxLayout(self.widget) 121 | self.horizontalLayout.setObjectName(u"horizontalLayout") 122 | self.PrimaryPushButton = PrimaryPushButton(self.widget) 123 | self.PrimaryPushButton.setObjectName(u"PrimaryPushButton") 124 | self.PrimaryPushButton.clicked.connect(lambda k: self.AClose(Form)) 125 | 126 | self.horizontalLayout.addWidget(self.PrimaryPushButton) 127 | 128 | self.PushButton = PushButton(self.widget) 129 | self.PushButton.setObjectName(u"PushButton") 130 | self.PushButton.clicked.connect(lambda k: self.NClose(Form)) 131 | 132 | self.horizontalLayout.addWidget(self.PushButton) 133 | 134 | 135 | self.verticalLayout.addWidget(self.widget) 136 | 137 | 138 | self.retranslateUi(Form) 139 | 140 | QMetaObject.connectSlotsByName(Form) 141 | # setupUi 142 | 143 | def retranslateUi(self, Form): 144 | Form.setWindowTitle(QCoreApplication.translate("Form", self.title, None)) 145 | self.TitleLabel.setText(QCoreApplication.translate("Form", self.title, None)) 146 | self.BodyLabel.setText(QCoreApplication.translate("Form", self.content, None)) 147 | self.PrimaryPushButton.setText(QCoreApplication.translate("Form", self.TrueText, None)) 148 | self.PushButton.setText(QCoreApplication.translate("Form", self.FalseText, None)) 149 | 150 | def AClose(self, Form): 151 | self.returned = "T" 152 | Form.close() 153 | 154 | def NClose(self, Form): 155 | Form.close() 156 | 157 | def IsTF(self): 158 | return self.returned 159 | # retranslateUi 160 | 161 | -------------------------------------------------------------------------------- /Dialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Form 4 | 5 | 6 | 7 | 0 8 | 0 9 | 908 10 | 448 11 | 12 | 13 | 14 | Form 15 | 16 | 17 | QWidget { 18 | border: none; 19 | border-radius: 15px; 20 | } 21 | 22 | 23 | 24 | 25 | 26 | 27 | 0 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 16777215 37 | 50 38 | 39 | 40 | 41 | 42 | HarmonyOS Sans SC 43 | 21 44 | true 45 | 46 | 47 | 48 | 免责声明 49 | 50 | 51 | 52 | 53 | 54 | 55 | false 56 | 57 | 58 | 思锐工作室 对于《壁纸生成器》系列产品的用户须知和免责声明(以下简称《声明》),请所有用户在使用本产品前务必认真仔细阅读。使用本产品即代表您同意本《声明》。 59 | 1. 本软件依赖于 Miklroi API、Lolicon API 等其他接口和开源项目,所有本产品相关的内容及所生成的任何图片均不可以用作任何商业用途,生成的图片由其作者保留所有权利,思锐工作室及其用户不承担任何责任和义务保护图片资源的规范和权利不受侵犯。若是AI生成的图片资源,则该图片无实际权利所有人,或按照生成该图片的AI机构认定权利归属。 60 | 2. 本产品永不用于任何商业用途。若有图片作者认为本系列产品侵犯了其正当权益,请与接口提供商和开源项目负责人联系和交涉,思锐工作室及其用户不承担任何责任。 61 | 3. 本产品所生成的任何图片资源均来源于接口提供商和开源项目,由接口提供商和开源项目通过爬取或代理(《Pixiv 生成器》除外)网络图片资源并返回给本产品。若图片有任何不规范的内容,思锐工作室及其用户不承担任何责任,所有图片资源均来自于网络。 62 | 4. 请所有用户遵守以上须知并严格遵守中华人民共和国法律,不得用本产品进行任何非法活动或侵犯他人权利的活动,不得试图使用本产品生成任何不符合法律或规范的图片。 63 | 5. 本产品仅供学习交流和娱乐使用,所有保存的图片请于24小时内删除。 64 | 6. 变更通知 65 | 若本《声明》的内容有任何变更,恕我们不另行通知,请用户每次更新本产品后及时阅读本《声明》以获得最新信息。 66 | 思锐工作室 2024.1.28 思锐工作室保留所有权和最终解释权 67 | 68 | 69 | Qt::AlignJustify|Qt::AlignTop 70 | 71 | 72 | true 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 16777215 87 | 50 88 | 89 | 90 | 91 | 92 | 93 | 94 | 同意 95 | 96 | 97 | 98 | 99 | 100 | 101 | 取消 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | PushButton 113 | QPushButton 114 |
qfluentwidgets
115 |
116 | 117 | PrimaryPushButton 118 | PushButton 119 |
qfluentwidgets
120 |
121 | 122 | CardWidget 123 | QFrame 124 |
qfluentwidgets
125 | 1 126 |
127 | 128 | SimpleCardWidget 129 | CardWidget 130 |
qfluentwidgets
131 | 1 132 |
133 | 134 | BodyLabel 135 | QLabel 136 |
qfluentwidgets
137 |
138 | 139 | TitleLabel 140 | QLabel 141 |
qfluentwidgets
142 |
143 |
144 | 145 | 146 |
147 | -------------------------------------------------------------------------------- /Minsize.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/Minsize.ico -------------------------------------------------------------------------------- /NewIcon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/NewIcon.ico -------------------------------------------------------------------------------- /None.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/None.ico -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | url = "https://pypi.org/simple" 3 | verify_ssl = true 4 | name = "pypi" 5 | 6 | [packages] 7 | pillow = "==10.4.0" 8 | easygui = "==0.98.3" 9 | pyside6 = "==6.4.2" 10 | wxpython = "==4.2.1" 11 | pyside6-fluent-widgets = "==1.6.0" 12 | psutil = "==5.9.8" 13 | matplotlib = "==3.6.2" 14 | pyinstall = "*" 15 | numpy = "==1.26.4" 16 | requests = "==2.31.0" 17 | auto-py-to-exe = "*" 18 | 19 | [dev-packages] 20 | 21 | [requires] 22 | python_version = "3.10" 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #
🥳Wallpaper generator
2 |

3 | License 4 | Language 5 | AI 6 | FREE 7 |

8 |
免费开源的二次元AI聚合壁纸生成器:从此个性化你的电脑。
9 | 10 | 快速了解我们:[观看 壁纸生成器4 宣传片](https://www.bilibili.com/video/BV1piHdeGEk8/?share_source=copy_web&vd_source=30d79003a7fdec2cbcfbe2d49d21ea9a) 11 | 12 | > [!NOTE] 13 | > 若您希望在 Android 系列操作系统上使用,请前往: [Android 版](https://github.com/SRInternet/Wallpaper-generator-for-android/) 和 [Android 版独立分支](https://github.com/SRInternet/Pixiv-generator/)。 14 | 15 | > [!IMPORTANT] 16 | > 本 README 正在更新,请有选择性的观看以下内容,并在稍后再次观看 17 | 18 | ## 详细信息 19 | 20 | ### 功能/特点 21 | - ✨极速生成壁纸,支持多种类型 22 | - ✨支持免代理从 Pixiv 浏览图片 23 | - ✨支持AI画图,_完全免费!_ 24 | - ✨支持手搓渐变色壁纸 25 | - ✨支持开机自启动,托盘程序低占用 26 | - ✨一键操作的开山鼻祖 27 | 28 | ### 兼容性 29 | - 支持 Windows10-Windows11 X64 操作系统 30 | 31 | > 需要.NET Framework (可以在这里[下载](https://download.microsoft.com/download/6/e/4/6e483240-dd87-40cd-adf4-0c47f5695b49/NDP481-Web.exe)) 32 | 33 | 34 | [Buy us a coffee!](https://afdian.com/a/srinternet) 35 | 36 | 37 | Follow us on: 38 | 39 | - [Douyin](https://www.douyin.com/user/MS4wLjABAAAATzdjtBBrLLCn69TtPMeseuEUzztbNZzw-9f13adrfiM?relation=0&vid=7143257533807873316) 40 | 41 | - [Bilibili](https://space.bilibili.com/1969160969) 42 | 43 | - [Youtube](https://www.youtube.com/channel/UCEPXlJTTAoKun8cYY1ix3ew) 44 | 45 | ## 如何使用 46 | 47 | ### 安装 48 | 1. 下载 [Releases](https://github.com/SRInternet-studio/Wallpaper-generator/releases) 中的最新版安装程序(.exe); 49 | 2. 双击安装,跟着提示一步步来; 50 | 3. 启动软件。 51 | 52 | ### 生成壁纸 53 | 1. 在软件主界面点击顶部的 ACG图像生成 、 浏览 Pixiv 或 AI画图 以进入不同的生成模式; 54 | 2. 首次生成建议前往设置页面,将图片保存的路径选择到自己喜欢的位置,避免过多占用C盘; 55 | 3. 回到生成页面,调整生成数量和类型等各种参数,点击生成; 56 | 5. 等待提示生成结束,就能在右侧看到生成的图片啦。 57 | 6. 点击右下角的页面指示器可以来回滚动图片哦 58 | 59 | ### 设置壁纸和查看 Pixiv 信息 60 | 1. 生成壁纸 61 | 2. 点击图片展板内生成的图片,下方会弹出悬浮菜单 62 | 3. 可以直接设置为壁纸,或在资源管理器中打开。 63 | 4. 如果是 Pixiv 生成器,还可以直接查看标签等 Pixiv 信息哦 64 | 65 | ### AI生成 66 | 1. 打开软件,并在主界面的顶部标签页中选择题AI画图 67 | 2. 在 标签 一栏用**英语**描述你想要生成的图片中的内容,也可以是一个个提示词(必须用**英文逗号加空格**分隔) 68 | 3. 在 反向提示词 中描述你不想在图片中看见的内容(建议不要删除默认的反向提示词) 69 | 4. 在 超分倍数 中选择图片要被超分辨率的倍速,建议为 1.25 ,不建议超过 1.5 70 | 5. 在 最低分辨率 中选择你期望图片最低能达到多少分辨率,建议 720 ,非常不建议选择 1024 71 | 6. 在 标签契合度 中选择生成图片和你所期望的差距值,契合度越大,AI自由发挥的空间越小,也就越接近你的提示词描述,反之亦然。一般建议为 7 。 72 | 7. 在 高清修复 中选择图片的清晰度,一般建议为 5 。 73 | 74 | ### 如何开机自启 75 | 1. 在软件主界面点击 自动更换壁纸的托盘程序; 76 | 2. 等待托盘程序的设置界面的弹出(若不是首次使用托盘程序则跳过此步); 77 | 3. 您会看到在任务栏右下方托盘处多出一个图标,图标中是一个动漫人物的头像(若您没有看到则可能被隐藏起来了,请点击托盘处最左侧的向上的箭头的图标 *^* 以展开被隐藏的托盘图标); 78 | 4. 右键托盘图标,点击 打开设置 以打开设置界面(首次使用会直接弹出设置界面); 79 | 5. 勾选 开机自启动 和 启动后自动更换壁纸; 80 | 6. 点击 保存并关闭 即可完成开机自启。 81 | 82 | ### 托盘程序刷新壁纸 83 | 1. 双击托盘图标可以快速更新壁纸。 84 | 2. 右键也可以立即刷新壁纸。 85 | 3. 若勾选 启动后自动更换壁纸 ,则托盘程序操作在启动后会立即刷新壁纸,无需手动操作哦 86 | 87 | ### 如何反馈 88 | 您可以在[这里](https://github.com/SRInternet-studio/Wallpaper-generator/issues/new)提交Issuse。您也可以通过我们的邮箱 srinternet@qq.com 进行反馈。 89 | 90 | ## 如何部署源代码 91 | > 壁纸生成器 4.0.0 采用了 Python 和 Visual Basic.NET 双代码结合[^1]的方式进行编写,这要求你的电脑中需要包含 Python 3.10 的标准环境和所需环境[^2] 以及 Blend for Visual Studio 2019 。 92 | 93 | ### 配置所需 Python 环境 94 | 1. 前往[官网](https://www.python.org)下载 Python 3.9 及以上版本,推荐 Python 3.11; 95 | 2. 根据安装程序的提示安装 Python; 96 | 3. 下载所需的第三方库; 97 | ```python 98 | python -m pip install -r requirements.txt 99 | ``` 100 | 101 | ### 配置所需 VB.NET 环境 102 | 1. 前往[官网](https://visualstudio.microsoft.com)下载并安装 Visual Studio Installer。 103 | 2. 打开 Visual Studio Installer ,在安装配置界面勾选上 .NET 桌面开发、通用 Windows 平台开发 或 Visual Studio 扩展开发。 104 | 3. 安装好 Visual Studio 后,检查是否包含 Blend for Visual Studio,若包含则完成此步。 105 | 106 | ### 如何使用源代码 107 | 本项目已 使用 Pipenv 进行虚拟环境封装,你可以通过 pipenv shell 进入虚拟环境,并安装依赖库。 108 | ```python 109 | python -m pip install pipenv 110 | ``` 111 | 112 | 源代码的目录结构层次如下: 113 | 1. V4Main.pyw 主程序主口程序,包括调起主程序 setup_ui 和启动时的 splashscreen 114 | 2. 壁纸生成器4.py 为主程序文件,包含壁纸生成器操作界面和全部核心代码实现。 115 | 116 | 117 | [^1]: 指部分代码采用了 Python 编写主界面和绝大部分核心部分代码,Visual Basic.NET 编写插件的形式,例如 渐变色壁纸生成器 。 118 | -------------------------------------------------------------------------------- /RefreshSetting.Sr: -------------------------------------------------------------------------------- 1 | AutoChange 2 | PC -------------------------------------------------------------------------------- /Set_Wallpaper.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/Set_Wallpaper.exe -------------------------------------------------------------------------------- /TagsSelector/script.js: -------------------------------------------------------------------------------- 1 | function showSubcategory(categoryId) { 2 | // 隐藏所有子分类 3 | const subcategories = document.querySelectorAll('.subcategory'); 4 | subcategories.forEach(sub => sub.classList.add('hidden')); 5 | 6 | // 显示选中的子分类 7 | const selectedSubcategory = document.getElementById(`subcategory-${categoryId}`); 8 | if (selectedSubcategory) { 9 | selectedSubcategory.classList.remove('hidden'); 10 | } 11 | } 12 | function showDetail(category, subcategory, tagName) { 13 | // 先隐藏所有三级菜单 14 | hideAllSubSubCategories(); 15 | 16 | // 获取并显示对应的三级菜单 17 | const subSubCategory = document.getElementById(`subsubcategory-${category}-${subcategory}`); 18 | if (subSubCategory) { 19 | subSubCategory.classList.remove('hidden'); 20 | } 21 | 22 | // 更新文本框显示,只显示英文部分 23 | if (tagName) { 24 | updateDisplay(tagName); 25 | } 26 | } 27 | 28 | function updateDisplay(tagName) { 29 | const selectedTextElement = document.getElementById('selected-text'); 30 | let currentText = selectedTextElement.textContent.trim(); 31 | let selectedTags = currentText ? currentText.split(', ') : []; 32 | 33 | // 只显示英文部分 34 | if (selectedTags.includes(tagName)) { 35 | selectedTags = selectedTags.filter(tag => tag !== tagName); 36 | } else { 37 | selectedTags.push(tagName); 38 | } 39 | 40 | selectedTextElement.textContent = selectedTags.join(', '); 41 | } 42 | 43 | 44 | 45 | function hideSubcategories() { 46 | // 隐藏所有二级菜单 47 | const subcategories = document.querySelectorAll('.subcategory'); 48 | subcategories.forEach(subcategory => { 49 | subcategory.classList.add('hidden'); 50 | }); 51 | 52 | // 隐藏所有三级菜单 53 | const subsubcategories = document.querySelectorAll('.subsubcategory'); 54 | subsubcategories.forEach(subsubcategory => { 55 | subsubcategory.classList.add('hidden'); 56 | }); 57 | } 58 | // 获取所有三级菜单按钮 59 | const subSubCategoryButtons = document.querySelectorAll('.subsubcategory button'); 60 | 61 | // 绑定点击事件 62 | subSubCategoryButtons.forEach(button => { 63 | button.addEventListener('click', () => { 64 | 65 | 66 | 67 | // 获取当前文本框中的内容 68 | let currentText = selectedTextElement.textContent.trim(); 69 | 70 | // 将当前内容分割成数组,以便处理 71 | let selectedTags = currentText ? currentText.split(', ') : []; 72 | 73 | // 如果当前文本已在数组中,则将其移除 74 | if (selectedTags.includes(buttonText)) { 75 | selectedTags = selectedTags.filter(tag => tag !== buttonText); 76 | } else { 77 | // 否则,将文本添加到数组中 78 | selectedTags.push(buttonText); 79 | } 80 | 81 | // 更新文本框内容,多个标签用逗号分隔 82 | selectedTextElement.textContent = selectedTags.join(', '); 83 | }); 84 | }); 85 | // 函数:隐藏所有三级菜单 86 | function hideAllSubSubCategories() { 87 | const subSubCategories = document.querySelectorAll('.subsubcategory'); 88 | subSubCategories.forEach(subSubCategory => { 89 | subSubCategory.classList.add('hidden'); 90 | }); 91 | } 92 | function copyText() { 93 | const textBox = document.getElementById('selected-text'); 94 | if (textBox) { 95 | // 为了支持
或其他非 元素的复制 96 | const range = document.createRange(); 97 | range.selectNodeContents(textBox); 98 | const selection = window.getSelection(); 99 | selection.removeAllRanges(); // 清除任何现有的选择 100 | selection.addRange(range); 101 | 102 | try { 103 | document.execCommand('copy'); 104 | alert('复制成功'); 105 | } catch (err) { 106 | console.error('复制失败:', err); 107 | alert('复制失败,请手动复制'); 108 | } 109 | 110 | // 清除选择内容 111 | selection.removeAllRanges(); 112 | } else { 113 | console.error('Text box not found'); 114 | } 115 | } 116 | 117 | 118 | -------------------------------------------------------------------------------- /TagsSelector/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: Arial, sans-serif; 3 | } 4 | 5 | .tag-container { 6 | display: flex; 7 | flex-direction: column; 8 | } 9 | 10 | .category, .subcategory { 11 | display: flex; 12 | flex-wrap: wrap; 13 | } 14 | 15 | .tag { 16 | padding: 10px; 17 | margin: 5px; 18 | padding: 5px 10px; 19 | border: 1px solid #ddd; 20 | border-radius: 5px; 21 | background-color: #8b2be7; 22 | color: white; 23 | cursor: pointer; 24 | } 25 | 26 | .tag:hover { 27 | color: #8b2be7; 28 | background-color: white; 29 | } 30 | 31 | .subcategory { 32 | margin-top: 10px; 33 | } 34 | 35 | .hidden { 36 | display: none; 37 | } 38 | 39 | -------------------------------------------------------------------------------- /V4-About.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Dialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 571 10 | 319 11 | 12 | 13 | 14 | 关于 壁纸生成器 4 15 | 16 | 17 | 18 | #Dialog { 19 | background-color: rgb(240, 240, 240); 20 | 21 | background-repeat: no-repeat; /* 禁止平铺 */ 22 | background-position: center; /* 图片居中 */ 23 | background-attachment: fixed; /* 图片固定不滚动 */ 24 | background-size: cover; /* 拉伸图片以填充整个背景 */ 25 | } 26 | 27 | 28 | 29 | 30 | 31 | 20 32 | 20 33 | 81 34 | 81 35 | 36 | 37 | 38 | border-image: url(:/ICO/NewIcon.ico); 39 | 40 | 41 | 42 | 43 | 44 | 120 45 | 20 46 | 231 47 | 27 48 | 49 | 50 | 51 | 壁纸生成器 4 52 | 53 | 54 | 55 | 56 | 57 | 120 58 | 50 59 | 271 60 | 19 61 | 62 | 63 | 64 | Wallpaper Generator V4 65 | 66 | 67 | 68 | 69 | 70 | 120 71 | 70 72 | 441 73 | 211 74 | 75 | 76 | 77 | <html><head/><body><p>版本号:4.1.0.0 (Build 241222)</p><p>依赖:Mikirol API,Loliapi API,Lolicon API,Stable Diffusion API</p><p>版权:接口及其返回的资源版权归接口制作者和资源创作者所有</p><p>壁纸生成器 Made by 思锐工作室(SR Studio)</p><p>Bilibili:SR思锐Official</p><p>开源地址:</p></body></html> 78 | 79 | 80 | true 81 | 82 | 83 | 84 | 85 | 86 | 110 87 | 270 88 | 391 89 | 31 90 | 91 | 92 | 93 | https://github.com/SRInternet-Studio/Wallpaper-generator 94 | 95 | 96 | false 97 | 98 | 99 | 100 | https://github.com/SRInternet-Studio/Wallpaper-generator 101 | 102 | 103 | 104 | 105 | 106 | 107 | 450 108 | 10 109 | 111 110 | 41 111 | 112 | 113 | 114 | 支持我们 115 | 116 | 117 | 118 | 119 | 120 | HyperlinkButton 121 | PushButton 122 |
qfluentwidgets
123 |
124 | 125 | PushButton 126 | QPushButton 127 |
qfluentwidgets
128 |
129 | 130 | PixmapLabel 131 | QLabel 132 |
qfluentwidgets
133 |
134 | 135 | BodyLabel 136 | QLabel 137 |
qfluentwidgets
138 |
139 | 140 | StrongBodyLabel 141 | QLabel 142 |
qfluentwidgets
143 |
144 | 145 | SubtitleLabel 146 | QLabel 147 |
qfluentwidgets
148 |
149 |
150 | 151 | 152 | 153 | 154 |
155 | -------------------------------------------------------------------------------- /V4About.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | ################################################################################ 4 | ## Form generated from reading UI file 'V4-AboutHnSRKr.ui' 5 | ## 6 | ## Created by: Qt User Interface Compiler version 6.4.3 7 | ## 8 | ## WARNING! All changes made in this file will be lost when recompiling UI file! 9 | ################################################################################ 10 | 11 | from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, 12 | QMetaObject, QObject, QPoint, QRect, 13 | QSize, QTime, QUrl, Qt) 14 | from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, 15 | QFont, QFontDatabase, QGradient, QIcon, 16 | QImage, QKeySequence, QLinearGradient, QPainter, 17 | QPalette, QPixmap, QRadialGradient, QTransform) 18 | from PySide6.QtWidgets import (QApplication, QCommandLinkButton, QDialog, QSizePolicy, 19 | QWidget) 20 | 21 | from qfluentwidgets import (BodyLabel, HyperlinkButton, PixmapLabel, PushButton, 22 | StrongBodyLabel, SubtitleLabel) 23 | 24 | import webbrowser as web 25 | # import about_rc 26 | 27 | class Ui_Dialog(object): 28 | def setupUi(self, Dialog): 29 | if not Dialog.objectName(): 30 | Dialog.setObjectName(u"Dialog") 31 | Dialog.resize(571, 319) 32 | Dialog.setStyleSheet(u"\n" 33 | "#Dialog {\n" 34 | " background-color: rgb(240, 240, 240);\n" 35 | " \n" 36 | " background-repeat: no-repeat; /* \u7981\u6b62\u5e73\u94fa */\n" 37 | " background-position: center; /* \u56fe\u7247\u5c45\u4e2d */\n" 38 | " background-attachment: fixed; /* \u56fe\u7247\u56fa\u5b9a\u4e0d\u6eda\u52a8 */\n" 39 | " background-size: cover; /* \u62c9\u4f38\u56fe\u7247\u4ee5\u586b\u5145\u6574\u4e2a\u80cc\u666f */\n" 40 | "}\n" 41 | "") 42 | Dialog.setWindowIcon(QIcon("NewIcon.ico")) 43 | self.PixmapLabel = PixmapLabel(Dialog) 44 | self.PixmapLabel.setObjectName(u"PixmapLabel") 45 | self.PixmapLabel.setGeometry(QRect(20, 20, 81, 81)) 46 | self.PixmapLabel.setStyleSheet(u"border-image: url('NewIcon.ico');") 47 | self.SubtitleLabel = SubtitleLabel(Dialog) 48 | self.SubtitleLabel.setObjectName(u"SubtitleLabel") 49 | self.SubtitleLabel.setGeometry(QRect(120, 20, 231, 27)) 50 | self.StrongBodyLabel = StrongBodyLabel(Dialog) 51 | self.StrongBodyLabel.setObjectName(u"StrongBodyLabel") 52 | self.StrongBodyLabel.setGeometry(QRect(120, 50, 271, 19)) 53 | self.BodyLabel = BodyLabel(Dialog) 54 | self.BodyLabel.setObjectName(u"BodyLabel") 55 | self.BodyLabel.setGeometry(QRect(120, 70, 441, 211)) 56 | self.BodyLabel.setWordWrap(True) 57 | self.HyperlinkButton = HyperlinkButton(Dialog) 58 | self.HyperlinkButton.setObjectName(u"HyperlinkButton") 59 | self.HyperlinkButton.setGeometry(QRect(110, 270, 391, 31)) 60 | self.HyperlinkButton.setCheckable(False) 61 | self.HyperlinkButton.setUrl(QUrl(u"https://github.com/SRInternet-Studio/Wallpaper-generator")) 62 | self.commandLinkButton = QCommandLinkButton(Dialog) 63 | self.commandLinkButton.setObjectName(u"commandLinkButton") 64 | self.commandLinkButton.setGeometry(QRect(450, 10, 111, 41)) 65 | self.commandLinkButton.clicked.connect(self.juanzeng) 66 | 67 | self.retranslateUi(Dialog) 68 | 69 | QMetaObject.connectSlotsByName(Dialog) 70 | # setupUi 71 | 72 | def retranslateUi(self, Dialog): 73 | Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"\u5173\u4e8e \u58c1\u7eb8\u751f\u6210\u5668 4", None)) 74 | self.SubtitleLabel.setText(QCoreApplication.translate("Dialog", u"\u58c1\u7eb8\u751f\u6210\u5668 4", None)) 75 | self.StrongBodyLabel.setText(QCoreApplication.translate("Dialog", u"Wallpaper Generator V4", None)) 76 | self.BodyLabel.setText(QCoreApplication.translate("Dialog", u"

\u7248\u672c\u53f7\uff1a4.1.0.0 (Build 241222)

\u4f9d\u8d56\uff1aMikirol API\uff0cLoliapi API\uff0cLolicon API\uff0cStable Diffusion API

\u7248\u6743\uff1a\u63a5\u53e3\u53ca\u5176\u8fd4\u56de\u7684\u8d44\u6e90\u7248\u6743\u5f52\u63a5\u53e3\u5236\u4f5c\u8005\u548c\u8d44\u6e90\u521b\u4f5c\u8005\u6240\u6709

\u58c1\u7eb8\u751f\u6210\u5668 Copyright \u601d\u9510\u5de5\u4f5c\u5ba4\uff08SR Studio\uff09 2022-2025

Bilibili\uff1aSR\u601d\u9510Official

\u5f00\u6e90\u5730\u5740\uff1a

", None)) 77 | self.HyperlinkButton.setText(QCoreApplication.translate("Dialog", u"https://github.com/SRInternet-Studio/Wallpaper-generator", None)) 78 | self.commandLinkButton.setText(QCoreApplication.translate("Dialog", u"\u652f\u6301\u6211\u4eec", None)) 79 | # retranslateUi 80 | 81 | def juanzeng(self): 82 | web.open('https://afdian.com/a/srinternet') 83 | 84 | 85 | -------------------------------------------------------------------------------- /V4Main.pyw: -------------------------------------------------------------------------------- 1 | import sys, os 2 | from PySide6.QtGui import QPixmap 3 | from PySide6.QtWidgets import QApplication, QSplashScreen, QWidget 4 | from V4Kernel import Ui_Form # 这里是转换后的 Python 文件 5 | 6 | class MainWindow(QWidget, Ui_Form): 7 | def __init__(self, parent=None): 8 | super(MainWindow, self).__init__(parent) 9 | self.setupUi(self) # 初始化 UI 界 10 | 11 | def resizeEvent(self, event): 12 | print("set background") 13 | super().resizeEvent(event) 14 | self.update_background() 15 | 16 | def get_executable_path(self): 17 | if getattr(sys, 'frozen', False): 18 | # 如果应用是打包成可执行文件,返回打包后的路径 19 | return sys._MEIPASS 20 | else: 21 | # 如果应用是在开发环境中运行,返回当前脚本的路径 22 | return os.path.dirname(os.path.abspath(__file__)) 23 | 24 | def main(): 25 | os.chdir(os.path.dirname(os.path.realpath(sys.argv[0]))) 26 | app = QApplication(sys.argv) 27 | 28 | # 创建一个启动屏幕 29 | splash_pix = QPixmap(".\\NewIcon.ico") # 替换为你的图标路径 30 | splash = QSplashScreen(splash_pix) 31 | splash.setWindowTitle("Welcome to Wallpaper_Generator V4...") 32 | splash.show() 33 | 34 | main_window = MainWindow() 35 | main_window.setWindowTitle("壁纸生成器 4.1") 36 | splash.finish(main_window) 37 | main_window.show() 38 | print("Window should be visible now.") 39 | 40 | # 启动 Qt 的事件循环 41 | # loop = asyncio.get_event_loop() 42 | # if loop.is_running(): 43 | # print("Event loop is already running.") 44 | # else: 45 | # asyncio.set_event_loop(loop) 46 | 47 | 48 | sys.exit(app.exec()) 49 | 50 | if __name__ == "__main__": 51 | main() 52 | -------------------------------------------------------------------------------- /V4Resources.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | PNG/oyama-mahiro-ai~2.png 4 | PNG/oyama-mahiro-ai~1.png 5 | 6 | 7 | -------------------------------------------------------------------------------- /Wallpaper_Generator.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/Wallpaper_Generator.exe -------------------------------------------------------------------------------- /Wallpaper_Gradient.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/Wallpaper_Gradient.exe -------------------------------------------------------------------------------- /about.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | NewIcon.ico 4 | 5 | 6 | -------------------------------------------------------------------------------- /ads.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | My AdSense Page 7 | 8 | 9 | 10 |

Welcome to My Site

11 | 12 | 13 | 19 | 22 | 23 | -------------------------------------------------------------------------------- /donate.html: -------------------------------------------------------------------------------- 1 | 支持我们,帮助我们更快走下去 -------------------------------------------------------------------------------- /generate_settings.Sr: -------------------------------------------------------------------------------- 1 | E:/WallpaperGenerator/generated_pixmap 2 | Insider -------------------------------------------------------------------------------- /old-versions/V1/壁纸生成器.pyw: -------------------------------------------------------------------------------- 1 | import requests 2 | import json 3 | from skimage import io 4 | from tkinter import * 5 | from tkinter import messagebox 6 | import matplotlib.pyplot as plt 7 | import pyperclip 8 | import os 9 | import time 10 | 11 | def about(): 12 | messagebox.showinfo('关于','依赖API:MirlKoiAPI\n API源(电脑壁纸):https://dev.iw233.cn/api.php?sort=random\n API源(手机壁纸):https://dev.iw233.cn/api.php?sort=mp\nexe封装:思锐工作室\n\ntips:启动该工具后的首次生成时间相对较长,大于需要5至60秒。') 13 | 14 | def phone_background(): 15 | start_time = time.time() 16 | label.configure(text = '记录:正在生成中…………………………………………') 17 | configuration.title('MirlKoi - AI画图(正在生成,请勿强行关闭程序)') 18 | configuration.update() 19 | api = "https://dev.iw233.cn/api.php?sort=mp" 20 | parameters = { 21 | "type": "json", 22 | 'num': 1 23 | } 24 | print(type(parameters)) 25 | response = requests.get(api, params=parameters) 26 | try: 27 | #print(response.text()) 28 | outputurl = json.dumps(response.json()) 29 | print(outputurl) 30 | output = outputurl[10:-3] 31 | 32 | image = io.imread(output) 33 | io.imsave('figure1.png', image) 34 | # img = plt.imread('figure1.png') 35 | # fig = plt.figure('生成的图片(正在在线查看,保存后查看效果更佳)') 36 | # ax = fig.add_subplot(111) 37 | # plt.axis('off') 38 | configuration.title('MirlKoi - AI画图') 39 | pyperclip.copy(output) 40 | os.startfile(r'figure1.png') 41 | end_time = time.time() 42 | spend_time = end_time - start_time 43 | label.configure(text = '记录:生成了,花费' + str(spend_time)[:-10] + '秒之多,缓存放在了程序根目录') 44 | messagebox.showinfo('生成完毕','图像链接已复制至粘贴板,请尽快另存为图像!') 45 | except: 46 | configuration.title('MirlKoi - AI画图') 47 | messagebox.showwarning("Error",response) 48 | 49 | def pc_background(): 50 | start_time = time.time() 51 | label.configure(text = '记录:正在生成中…………………………………………') 52 | configuration.title('MirlKoi - AI画图(正在生成,请勿强行关闭程序)') 53 | configuration.update() 54 | api = "https://dev.iw233.cn/api.php?sort=random" 55 | parameters = { 56 | "type": "json", 57 | 'num': 1 58 | } 59 | response = requests.get(api, params=parameters) 60 | try: 61 | #print(response.text()) 62 | outputurl = json.dumps(response.json()) 63 | output = outputurl[10:-3] 64 | 65 | image = io.imread(output) 66 | io.imsave('figure1.png', image) 67 | # img = plt.imread('figure1.png') 68 | # fig = plt.figure('生成的图片(正在在线查看,保存后查看效果更佳)') 69 | # ax = fig.add_subplot(111) 70 | # plt.axis('off') 71 | configuration.title('MirlKoi - AI画图') 72 | pyperclip.copy(output) 73 | os.startfile(r'figure1.png') 74 | end_time = time.time() 75 | spend_time = end_time - start_time 76 | label.configure(text = '记录:生成了,花费' + str(spend_time)[:-10] + '秒之多,缓存放在了程序根目录') 77 | messagebox.showinfo('生成完毕','图像链接已复制至粘贴板,请尽快另存为图像!') 78 | except: 79 | configuration.title('MirlKoi - AI画图') 80 | messagebox.showwarning("Error",response) 81 | 82 | configuration = Tk() 83 | configuration.iconbitmap('ico.ico') 84 | configuration.title('MirlKoi - AI画图') 85 | configuration.geometry("383x220") 86 | configuration.resizable(width=False, height=False) 87 | label=Label(configuration,text=" AI 画图",font=('微软雅黑', 15, 'bold')) 88 | label.place(x=0,y=0) 89 | button=Button(configuration, width=52,height=2, text='在线生成 - 电脑壁纸 (可能包含未过审图片!)', command=pc_background) 90 | button.place(x=3,y=50) 91 | button1=Button(configuration, width=52,height=2, text='在线生成 - 手机壁纸', command=phone_background) 92 | button1.place(x=3,y=100) 93 | label=Label(configuration,text="记录:还没有生成。",font=('微软雅黑', 10,)) 94 | label.place(x=3,y=170) 95 | menubar=Menu(configuration) 96 | menubar.add_command(label='关于',command=about) 97 | configuration.config(menu=menubar) 98 | configuration['menu']=menubar 99 | configuration.mainloop() 100 | 101 | # def jprint(obj): 102 | 103 | # # create a formatted string of the Python JSON object 104 | 105 | # text = json.dumps(obj, sort_keys=True, indent=4) 106 | # print(text) 107 | 108 | 109 | #img = plt.imread(output) 110 | #fig = plt.figure('获取的图像') 111 | #ax = fig.add_subplot(111) 112 | #ax.imshow(img) 113 | -------------------------------------------------------------------------------- /old-versions/V2.1/壁纸生成器V2.1.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | 4 | from PyQt5 import QtCore, QtGui, QtWidgets 5 | import sys 6 | import requests 7 | import json 8 | from skimage import io 9 | from tkinter import * 10 | from tkinter import messagebox 11 | import matplotlib.pyplot as plt 12 | import pyperclip 13 | import os 14 | import time 15 | import easygui 16 | 17 | 18 | class Ui_MainWindow(object): 19 | def setupUi(self, MainWindow): 20 | MainWindow.setObjectName("MainWindow") 21 | MainWindow.resize(440, 780) 22 | MainWindow.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu) 23 | MainWindow.setAutoFillBackground(False) 24 | MainWindow.setStyleSheet("#centralwidget{image: url(BACKIMG.png);}") 25 | # MainWindow.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint) 26 | MainWindow.setFixedSize(MainWindow.width(), MainWindow.height()); 27 | MainWindow.setWindowIcon(QtGui.QIcon("ico.ico")) 28 | self.centralwidget = QtWidgets.QWidget(MainWindow) 29 | self.centralwidget.setObjectName("centralwidget") 30 | self.label = QtWidgets.QLabel(self.centralwidget) 31 | self.label.setGeometry(QtCore.QRect(70, 50, 301, 51)) 32 | self.label.setStyleSheet("background-color: rgb(255, 255, 255);") 33 | self.label.setObjectName("label") 34 | self.pushButton = QtWidgets.QPushButton(self.centralwidget) 35 | self.pushButton.setGeometry(QtCore.QRect(60, 250, 311, 51)) 36 | self.pushButton.setObjectName("pushButton") 37 | self.pushButton.clicked.connect(self.PC) 38 | self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) 39 | self.pushButton_2.setGeometry(QtCore.QRect(60, 310, 311, 51)) 40 | self.pushButton_2.setObjectName("pushButton_2") 41 | self.pushButton_2.clicked.connect(self.Phone) 42 | self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) 43 | self.pushButton_3.setGeometry(QtCore.QRect(60, 370, 311, 51)) 44 | self.pushButton_3.setObjectName("pushButton_3") 45 | self.pushButton_3.clicked.connect(self.Cat) 46 | self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget) 47 | self.pushButton_4.setGeometry(QtCore.QRect(60, 430, 311, 51)) 48 | self.pushButton_4.setObjectName("pushButton_4") 49 | self.pushButton_4.clicked.connect(self.Starry) 50 | self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget) 51 | self.pushButton_5.setGeometry(QtCore.QRect(60, 490, 311, 61)) 52 | self.pushButton_5.setObjectName("pushButton_5") 53 | self.pushButton_5.clicked.connect(self.Ran) 54 | self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget) 55 | self.pushButton_6.setGeometry(QtCore.QRect(310, 730, 121, 41)) 56 | self.pushButton_6.setObjectName("pushButton_6") 57 | self.pushButton_6.clicked.connect(self.about) 58 | MainWindow.setCentralWidget(self.centralwidget) 59 | 60 | self.retranslateUi(MainWindow) 61 | QtCore.QMetaObject.connectSlotsByName(MainWindow) 62 | 63 | def retranslateUi(self, MainWindow): 64 | _translate = QtCore.QCoreApplication.translate 65 | MainWindow.setWindowTitle(_translate("MainWindow", "壁纸生成器 2.1 - 图像生成")) 66 | self.label.setText(_translate("MainWindow", "

壁纸生成器 - 图像生成

")) 67 | self.pushButton.setText(_translate("MainWindow", "在线生成 - 电脑壁纸")) 68 | self.pushButton_2.setText(_translate("MainWindow", "在线生成 - 手机壁纸")) 69 | self.pushButton_3.setText(_translate("MainWindow", "在线生成 - 兽控")) 70 | self.pushButton_4.setText(_translate("MainWindow", "在线生成 - 星空")) 71 | self.pushButton_5.setText(_translate("MainWindow", "在线生成 - 随机图片\n" 72 | "(可能包含未过审图片!)")) 73 | self.pushButton_6.setText(_translate("MainWindow", "关于")) 74 | 75 | def PC(self): 76 | _translate = QtCore.QCoreApplication.translate 77 | self.label.setText(_translate("MainWindow", "

请等待……

")) 78 | api = "https://api.iw233.cn/api.php?sort=pc" 79 | 80 | self.ReadPicture(api) 81 | 82 | def Phone(self): 83 | _translate = QtCore.QCoreApplication.translate 84 | self.label.setText(_translate("MainWindow", "

请等待……

")) 85 | api = "https://api.iw233.cn/api.php?sort=mp" 86 | 87 | self.ReadPicture(api) 88 | 89 | def Cat(self): 90 | _translate = QtCore.QCoreApplication.translate 91 | self.label.setText(_translate("MainWindow", "

请等待……

")) 92 | api = "https://api.iw233.cn/api.php?sort=cat" 93 | 94 | self.ReadPicture(api) 95 | 96 | def Starry(self): 97 | _translate = QtCore.QCoreApplication.translate 98 | self.label.setText(_translate("MainWindow", "

请等待……

")) 99 | api = "https://api.iw233.cn/api.php?sort=xing" 100 | 101 | self.ReadPicture(api) 102 | 103 | def Ran(self): 104 | _translate = QtCore.QCoreApplication.translate 105 | self.label.setText(_translate("MainWindow", "

请等待……

")) 106 | api = "https://api.iw233.cn/api.php?sort=random" 107 | 108 | self.ReadPicture(api) 109 | 110 | def ReadPicture(self,api): 111 | #选择保存路径 112 | save = easygui.filesavebox(msg="*.PNG",title="图片保存位置",filetypes=["*.PNG"]) 113 | start_time = time.time() 114 | _translate = QtCore.QCoreApplication.translate 115 | if save != None: 116 | save = save + ".png" 117 | parameters = { 118 | "type": "json", 119 | 'num': 1 120 | } 121 | response = requests.get(api, params=parameters) 122 | try: 123 | # print(response.text()) 124 | outputurl = json.dumps(response.json()) 125 | print('拉取 ' + outputurl) 126 | output = outputurl[10:-3] 127 | print('开始下载……') 128 | image = io.imread(output) 129 | io.imsave(save, image) 130 | img = plt.imread(save) 131 | fig = plt.figure('生成的图片(正在在线查看,保存后查看效果更佳)') 132 | ax = fig.add_subplot(111) 133 | plt.axis('off') 134 | pyperclip.copy(output) 135 | os.startfile(save) 136 | end_time = time.time() 137 | spend_time = end_time - start_time 138 | print('结束\n') 139 | messagebox.showinfo('生成完毕','花费了 {} 秒钟,图片已保存。'.format(spend_time)) 140 | except: 141 | messagebox.showwarning("Error",response) 142 | 143 | 144 | self.label.setText(_translate("MainWindow", "

壁纸生成器 - AI 画图

")) 145 | 146 | def about(self): 147 | messagebox.showinfo('关于','名称:壁纸生成器 2.1 图片生成插件\n依赖API:MirlKoiAPI\n API源:https://api.iw233.cn/api.php?\n 本地化:思锐工作室\n\ntips:生成壁纸时出现程序未响应属于正常现象,请耐心等待。\n 若发现点击按钮后的10分钟内程序没有弹出壁纸,请多试几次或隔日再试,这可能是由于服务器维护导致的。') 148 | 149 | 150 | # import 2.0资源_rc 151 | if __name__ == "__main__": 152 | app = QtWidgets.QApplication(sys.argv) 153 | MainWindow = QtWidgets.QMainWindow() 154 | ui = Ui_MainWindow() 155 | ui.setupUi(MainWindow) 156 | MainWindow.show() 157 | sys.exit(app.exec_()) 158 | -------------------------------------------------------------------------------- /old-versions/V2/2.0资源.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | BACKIMG.png 4 | 5 | 6 | -------------------------------------------------------------------------------- /old-versions/V2/MainWindowV2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'untitled.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.15.9 6 | # 7 | # WARNING: Any manual changes made to this file will be lost when pyuic5 is 8 | # run again. Do not edit this file unless you know what you are doing. 9 | 10 | 11 | from PyQt5 import QtCore, QtGui, QtWidgets 12 | import sys 13 | 14 | 15 | class Ui_MainWindow(object): 16 | def setupUi(self, MainWindow): 17 | MainWindow.setObjectName("MainWindow") 18 | MainWindow.resize(440, 780) 19 | MainWindow.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu) 20 | MainWindow.setAutoFillBackground(False) 21 | MainWindow.setStyleSheet("#centralwidget{image: url(:/PNG/BACKIMG.png);}") 22 | self.centralwidget = QtWidgets.QWidget(MainWindow) 23 | self.centralwidget.setObjectName("centralwidget") 24 | self.label = QtWidgets.QLabel(self.centralwidget) 25 | self.label.setGeometry(QtCore.QRect(70, 50, 301, 51)) 26 | self.label.setStyleSheet("background-color: rgb(255, 255, 255);") 27 | self.label.setObjectName("label") 28 | self.pushButton = QtWidgets.QPushButton(self.centralwidget) 29 | self.pushButton.setGeometry(QtCore.QRect(60, 250, 311, 51)) 30 | self.pushButton.setObjectName("pushButton") 31 | self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) 32 | self.pushButton_2.setGeometry(QtCore.QRect(60, 310, 311, 51)) 33 | self.pushButton_2.setObjectName("pushButton_2") 34 | self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) 35 | self.pushButton_3.setGeometry(QtCore.QRect(60, 370, 311, 51)) 36 | self.pushButton_3.setObjectName("pushButton_3") 37 | self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget) 38 | self.pushButton_4.setGeometry(QtCore.QRect(60, 430, 311, 51)) 39 | self.pushButton_4.setObjectName("pushButton_4") 40 | self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget) 41 | self.pushButton_5.setGeometry(QtCore.QRect(60, 490, 311, 61)) 42 | self.pushButton_5.setObjectName("pushButton_5") 43 | self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget) 44 | self.pushButton_6.setGeometry(QtCore.QRect(310, 730, 121, 41)) 45 | self.pushButton_6.setObjectName("pushButton_6") 46 | self.checkBox = QtWidgets.QCheckBox(self.centralwidget) 47 | self.checkBox.setGeometry(QtCore.QRect(270, 580, 141, 31)) 48 | font = QtGui.QFont() 49 | font.setFamily("Microsoft YaHei") 50 | font.setPointSize(11) 51 | font.setBold(False) 52 | font.setWeight(50) 53 | self.checkBox.setFont(font) 54 | self.checkBox.setText("") 55 | self.checkBox.setTristate(False) 56 | self.checkBox.setObjectName("checkBox") 57 | self.label_2 = QtWidgets.QLabel(self.centralwidget) 58 | self.label_2.setGeometry(QtCore.QRect(290, 580, 131, 31)) 59 | font = QtGui.QFont() 60 | font.setFamily("Microsoft YaHei") 61 | font.setBold(False) 62 | font.setWeight(50) 63 | self.label_2.setFont(font) 64 | self.label_2.setStyleSheet("") 65 | self.label_2.setObjectName("label_2") 66 | self.label_2.raise_() 67 | self.checkBox.raise_() 68 | self.label.raise_() 69 | self.pushButton.raise_() 70 | self.pushButton_2.raise_() 71 | self.pushButton_3.raise_() 72 | self.pushButton_4.raise_() 73 | self.pushButton_5.raise_() 74 | self.pushButton_6.raise_() 75 | MainWindow.setCentralWidget(self.centralwidget) 76 | 77 | self.retranslateUi(MainWindow) 78 | QtCore.QMetaObject.connectSlotsByName(MainWindow) 79 | 80 | def retranslateUi(self, MainWindow): 81 | _translate = QtCore.QCoreApplication.translate 82 | MainWindow.setWindowTitle(_translate("MainWindow", "壁纸生成器 2.0 - AI画图")) 83 | self.label.setText(_translate("MainWindow", "

壁纸生成器 - AI 画图

")) 84 | self.pushButton.setText(_translate("MainWindow", "在线生成 - 电脑壁纸")) 85 | self.pushButton_2.setText(_translate("MainWindow", "在线生成 - 手机壁纸")) 86 | self.pushButton_3.setText(_translate("MainWindow", "在线生成 - 兽控")) 87 | self.pushButton_4.setText(_translate("MainWindow", "在线生成 - 星空")) 88 | self.pushButton_5.setText(_translate("MainWindow", "在线生成 - 乱七八糟的图片\n" 89 | "(可能包含未过审图片!)")) 90 | self.pushButton_6.setText(_translate("MainWindow", "关于")) 91 | self.label_2.setText(_translate("MainWindow", "

批量生成(新)

")) 92 | if __name__ == "__main__": 93 | app = QtWidgets.QApplication(sys.argv) 94 | MainWindow = QtWidgets.QMainWindow() 95 | ui = Ui_MainWindow() 96 | ui.setupUi(MainWindow) 97 | MainWindow.show() 98 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /old-versions/V2/壁纸生成器V2.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from tkinter import messagebox 3 | from PyQt5 import QtCore, QtGui, QtWidgets 4 | import sys 5 | import requests 6 | from skimage import io 7 | import matplotlib.pyplot as plt 8 | import pyperclip 9 | import os 10 | import time 11 | import easygui 12 | 13 | 14 | class Ui_MainWindow(object): 15 | def setupUi(self, MainWindow): 16 | MainWindow.setObjectName("MainWindow") 17 | MainWindow.resize(440, 780) 18 | MainWindow.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu) 19 | MainWindow.setAutoFillBackground(False) 20 | MainWindow.setStyleSheet("#centralwidget{image: url(BACKIMG.png);}") 21 | MainWindow.setFixedSize(MainWindow.width(), MainWindow.height()) 22 | MainWindow.setWindowIcon(QtGui.QIcon("ico.ico")) 23 | self.centralwidget = QtWidgets.QWidget(MainWindow) 24 | self.centralwidget.setObjectName("centralwidget") 25 | self.label = QtWidgets.QLabel(self.centralwidget) 26 | self.label.setGeometry(QtCore.QRect(70, 50, 301, 51)) 27 | self.label.setStyleSheet("background-color: rgb(255, 255, 255);") 28 | self.label.setObjectName("label") 29 | self.pushButton = QtWidgets.QPushButton(self.centralwidget) 30 | self.pushButton.setGeometry(QtCore.QRect(60, 250, 311, 51)) 31 | self.pushButton.setObjectName("pushButton") 32 | self.pushButton.clicked.connect(self.PC) 33 | self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) 34 | self.pushButton_2.setGeometry(QtCore.QRect(60, 310, 311, 51)) 35 | self.pushButton_2.setObjectName("pushButton_2") 36 | self.pushButton_2.clicked.connect(self.Phone) 37 | self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) 38 | self.pushButton_3.setGeometry(QtCore.QRect(60, 370, 311, 51)) 39 | self.pushButton_3.setObjectName("pushButton_3") 40 | self.pushButton_3.clicked.connect(self.Cat) 41 | self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget) 42 | self.pushButton_4.setGeometry(QtCore.QRect(60, 430, 311, 51)) 43 | self.pushButton_4.setObjectName("pushButton_4") 44 | self.pushButton_4.clicked.connect(self.Starry) 45 | self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget) 46 | self.pushButton_5.setGeometry(QtCore.QRect(60, 490, 311, 61)) 47 | self.pushButton_5.setObjectName("pushButton_5") 48 | self.pushButton_5.clicked.connect(self.Ran) 49 | self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget) 50 | self.pushButton_6.setGeometry(QtCore.QRect(310, 730, 121, 41)) 51 | self.pushButton_6.setObjectName("pushButton_6") 52 | self.pushButton_6.clicked.connect(self.about) 53 | MainWindow.setCentralWidget(self.centralwidget) 54 | 55 | self.retranslateUi(MainWindow) 56 | QtCore.QMetaObject.connectSlotsByName(MainWindow) 57 | 58 | def retranslateUi(self, MainWindow): 59 | _translate = QtCore.QCoreApplication.translate 60 | MainWindow.setWindowTitle(_translate("MainWindow", "壁纸生成器 2.0 - AI画图")) 61 | self.label.setText(_translate("MainWindow", 62 | "

壁纸生成器 - AI 画图

")) 63 | self.pushButton.setText(_translate("MainWindow", "在线生成 - 电脑壁纸")) 64 | self.pushButton_2.setText(_translate("MainWindow", "在线生成 - 手机壁纸")) 65 | self.pushButton_3.setText(_translate("MainWindow", "在线生成 - 兽控")) 66 | self.pushButton_4.setText(_translate("MainWindow", "在线生成 - 星空")) 67 | self.pushButton_5.setText(_translate("MainWindow", "在线生成 - 随机图片\n" 68 | "(可能包含未审核图片)")) 69 | self.pushButton_6.setText(_translate("MainWindow", "关于")) 70 | 71 | def PC(self): # PC壁纸请求 72 | _translate = QtCore.QCoreApplication.translate 73 | self.label.setText(_translate("MainWindow", 74 | "

请等待……

")) 75 | start_time = time.time() 76 | api = "https://dev.iw233.cn/api.php?sort=pc" 77 | 78 | self.ReadPicture(api, start_time) 79 | 80 | def Phone(self): # 移动端壁纸请求 81 | _translate = QtCore.QCoreApplication.translate 82 | self.label.setText(_translate("MainWindow", 83 | "

请等待……

")) 84 | start_time = time.time() 85 | api = "https://dev.iw233.cn/api.php?sort=mp" 86 | 87 | self.ReadPicture(api, start_time) 88 | 89 | def Cat(self): # 兽控壁纸请求 90 | _translate = QtCore.QCoreApplication.translate 91 | self.label.setText(_translate("MainWindow", 92 | "

请等待……

")) 93 | start_time = time.time() 94 | api = "https://dev.iw233.cn/api.php?sort=cat" 95 | 96 | self.ReadPicture(api, start_time) 97 | 98 | def Starry(self): # 星空壁纸请求 99 | _translate = QtCore.QCoreApplication.translate 100 | self.label.setText(_translate("MainWindow", 101 | "

请等待……

")) 102 | start_time = time.time() 103 | api = "https://dev.iw233.cn/api.php?sort=xing" 104 | 105 | self.ReadPicture(api, start_time) 106 | 107 | def Ran(self): # 随机壁纸请求 108 | _translate = QtCore.QCoreApplication.translate 109 | self.label.setText(_translate("MainWindow", 110 | "

请等待……

")) 111 | start_time = time.time() 112 | api = "https://dev.iw233.cn/api.php?sort=random" 113 | 114 | self.ReadPicture(api, start_time) 115 | 116 | def ReadPicture(self, api, start_time): 117 | # 选择保存路径 118 | save = easygui.filesavebox(msg="*.PNG", title="图片保存位置", filetypes=["*.PNG"]) 119 | _translate = QtCore.QCoreApplication.translate 120 | if save != None: 121 | save = save + ".png" 122 | parameters = { 123 | "type": "json", 124 | 'num': 1 125 | } 126 | try: 127 | try: 128 | response = requests.get(api, params=parameters) # 尝试请求API,获取壁纸 129 | except: 130 | response = "网络错误" 131 | raise "网络错误" 132 | download_url = response.json()["pic"][0] # 生成图片下载直链 133 | image = io.imread(download_url) 134 | io.imsave(save, image) # 保存图片 135 | img = plt.imread(save) 136 | fig = plt.figure('生成的图片(正在在线查看,保存后查看效果更佳)') 137 | ax = fig.add_subplot(111) 138 | plt.axis('off') 139 | pyperclip.copy(download_url) 140 | os.startfile(save) # 提供预览 141 | end_time = time.time() 142 | spend_time = end_time - start_time 143 | messagebox.showinfo('生成完毕', '花费了 {} 秒钟,图片已保存。'.format(int(spend_time))) 144 | except Exception as err: # 发生错误时发送消息 145 | messagebox.showwarning("Error " + str(response), str(err)) 146 | 147 | self.label.setText(_translate("MainWindow", 148 | "

壁纸生成器 - AI 画图

")) 149 | 150 | def about(self): 151 | messagebox.showinfo('关于', 152 | '名称:壁纸生成器 2.0 AI画图插件\n依赖API:MirlKoiAPI\n API源:https://dev.iw233.cn/api.php?\n exe封装:思锐工作室\n\ntips:生成壁纸时出现程序未响应属于正常现象,请耐心等待。\n 若发现点击按钮后的10分钟内程序没有弹出壁纸,请多试几次或隔日再试,这可能是由于服务器维护导致的。') 153 | 154 | 155 | 156 | if __name__ == "__main__": 157 | app = QtWidgets.QApplication(sys.argv) 158 | MainWindow = QtWidgets.QMainWindow() 159 | ui = Ui_MainWindow() 160 | ui.setupUi(MainWindow) 161 | MainWindow.show() 162 | sys.exit(app.exec_()) 163 | -------------------------------------------------------------------------------- /old-versions/V3/BACKIMG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/BACKIMG.png -------------------------------------------------------------------------------- /old-versions/V3/PNG/BACKIMG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/PNG/BACKIMG.png -------------------------------------------------------------------------------- /old-versions/V3/PNG/Win11Color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/PNG/Win11Color.png -------------------------------------------------------------------------------- /old-versions/V3/PNG/Win11Color1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/PNG/Win11Color1.png -------------------------------------------------------------------------------- /old-versions/V3/PNG/oyama-mahiro-ai~1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/PNG/oyama-mahiro-ai~1.png -------------------------------------------------------------------------------- /old-versions/V3/PNG/oyama-mahiro-ai~2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/PNG/oyama-mahiro-ai~2.png -------------------------------------------------------------------------------- /old-versions/V3/Wallpapers/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/Wallpapers/1.png -------------------------------------------------------------------------------- /old-versions/V3/Wallpapers/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/Wallpapers/2.png -------------------------------------------------------------------------------- /old-versions/V3/Wallpapers/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/Wallpapers/3.png -------------------------------------------------------------------------------- /old-versions/V3/Wallpapers/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/Wallpapers/4.png -------------------------------------------------------------------------------- /old-versions/V3/Wallpapers/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/Wallpapers/5.png -------------------------------------------------------------------------------- /old-versions/V3/Wallpapers/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/Wallpapers/6.png -------------------------------------------------------------------------------- /old-versions/V3/batch.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'batch.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.15.9 6 | # 7 | # WARNING: Any manual changes made to this file will be lost when pyuic5 is 8 | # run again. Do not edit this file unless you know what you are doing. 9 | 10 | 11 | from PyQt5 import QtCore, QtGui, QtWidgets 12 | 13 | 14 | class Ui_Dialog(object): 15 | def setupUi(self, Dialog): 16 | Dialog.setObjectName("Dialog") 17 | Dialog.resize(670, 196) 18 | self.buttonBox = QtWidgets.QDialogButtonBox(Dialog) 19 | self.buttonBox.setGeometry(QtCore.QRect(310, 150, 341, 32)) 20 | self.buttonBox.setOrientation(QtCore.Qt.Horizontal) 21 | self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok) 22 | self.buttonBox.setObjectName("buttonBox") 23 | self.horizontalSlider = QtWidgets.QSlider(Dialog) 24 | self.horizontalSlider.setGeometry(QtCore.QRect(10, 110, 641, 21)) 25 | self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) 26 | self.horizontalSlider.setObjectName("horizontalSlider") 27 | self.label = QtWidgets.QLabel(Dialog) 28 | self.label.setGeometry(QtCore.QRect(20, 20, 631, 31)) 29 | font = QtGui.QFont() 30 | font.setFamily("Microsoft YaHei UI") 31 | self.label.setFont(font) 32 | self.label.setObjectName("label") 33 | self.label_2 = QtWidgets.QLabel(Dialog) 34 | self.label_2.setGeometry(QtCore.QRect(20, 60, 631, 31)) 35 | font = QtGui.QFont() 36 | font.setFamily("Microsoft YaHei UI") 37 | self.label_2.setFont(font) 38 | self.label_2.setObjectName("label_2") 39 | self.label_3 = QtWidgets.QLabel(Dialog) 40 | self.label_3.setGeometry(QtCore.QRect(50, 150, 401, 31)) 41 | font = QtGui.QFont() 42 | font.setFamily("Microsoft YaHei") 43 | self.label_3.setFont(font) 44 | self.label_3.setObjectName("label_3") 45 | self.lineEdit = QtWidgets.QLineEdit(Dialog) 46 | self.lineEdit.setGeometry(QtCore.QRect(70, 60, 91, 31)) 47 | self.lineEdit.setObjectName("lineEdit") 48 | self.label_2.raise_() 49 | self.buttonBox.raise_() 50 | self.horizontalSlider.raise_() 51 | self.label.raise_() 52 | self.label_3.raise_() 53 | self.lineEdit.raise_() 54 | 55 | self.retranslateUi(Dialog) 56 | self.buttonBox.accepted.connect(Dialog.accept) # type: ignore 57 | self.buttonBox.rejected.connect(Dialog.reject) # type: ignore 58 | QtCore.QMetaObject.connectSlotsByName(Dialog) 59 | 60 | def retranslateUi(self, Dialog): 61 | _translate = QtCore.QCoreApplication.translate 62 | Dialog.setWindowTitle(_translate("Dialog", "批量生成 - 配置")) 63 | self.label.setText(_translate("Dialog", "

生成的类型:

")) 64 | self.label_2.setText(_translate("Dialog", "

数量:

")) 65 | self.label_3.setText(_translate("Dialog", "

某些时候,可能无法获取100张图片,最多99张

")) 66 | -------------------------------------------------------------------------------- /old-versions/V3/batch.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Dialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 670 10 | 196 11 | 12 | 13 | 14 | 批量生成 - 配置 15 | 16 | 17 | 18 | 19 | 310 20 | 150 21 | 341 22 | 32 23 | 24 | 25 | 26 | Qt::Horizontal 27 | 28 | 29 | QDialogButtonBox::Cancel|QDialogButtonBox::Ok 30 | 31 | 32 | 33 | 34 | 35 | 10 36 | 110 37 | 641 38 | 21 39 | 40 | 41 | 42 | Qt::Horizontal 43 | 44 | 45 | 46 | 47 | 48 | 20 49 | 20 50 | 631 51 | 31 52 | 53 | 54 | 55 | 56 | Microsoft YaHei UI 57 | 58 | 59 | 60 | <html><head/><body><p>生成的类型:</p></body></html> 61 | 62 | 63 | 64 | 65 | 66 | 20 67 | 60 68 | 631 69 | 31 70 | 71 | 72 | 73 | 74 | Microsoft YaHei UI 75 | 76 | 77 | 78 | <html><head/><body><p>数量:</p></body></html> 79 | 80 | 81 | 82 | 83 | 84 | 50 85 | 150 86 | 401 87 | 31 88 | 89 | 90 | 91 | 92 | Microsoft YaHei 93 | 94 | 95 | 96 | <html><head/><body><p><span style=" font-family:'Consolas','Courier New','monospace'; font-size:10pt; font-weight:600; color:#ff0000;">某些时候,可能无法获取100张图片,最多99张</span></p></body></html> 97 | 98 | 99 | 100 | 101 | 102 | 70 103 | 60 104 | 91 105 | 31 106 | 107 | 108 | 109 | label_2 110 | buttonBox 111 | horizontalSlider 112 | label 113 | label_3 114 | lineEdit 115 | 116 | 117 | 118 | 119 | buttonBox 120 | accepted() 121 | Dialog 122 | accept() 123 | 124 | 125 | 248 126 | 254 127 | 128 | 129 | 157 130 | 274 131 | 132 | 133 | 134 | 135 | buttonBox 136 | rejected() 137 | Dialog 138 | reject() 139 | 140 | 141 | 316 142 | 260 143 | 144 | 145 | 286 146 | 274 147 | 148 | 149 | 150 | 151 | 152 | -------------------------------------------------------------------------------- /old-versions/V3/batch_window.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'batch.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.15.9 6 | # 7 | # WARNING: Any manual changes made to this file will be lost when pyuic5 is 8 | # run again. Do not edit this file unless you know what you are doing. 9 | 10 | 11 | from PyQt5 import QtCore, QtGui, QtWidgets 12 | from PyQt5.QtCore import Qt 13 | from PyQt5.QtGui import QIntValidator 14 | import sys 15 | from tkinter import * 16 | from tkinter import messagebox 17 | 18 | root1 = Tk() 19 | root1.withdraw() 20 | 21 | number = 10 22 | 23 | class Ui_Dialog(object): 24 | def __init__(self, generate_type): 25 | self.generate_type = generate_type 26 | 27 | def setupUi(self, Dialog): 28 | Dialog.setObjectName("Dialog") 29 | Dialog.resize(670, 196) 30 | Dialog.setWindowFlags(Dialog.windowFlags() & ~Qt.WindowContextHelpButtonHint) 31 | Dialog.setFixedSize(Dialog.width(), Dialog.height()); 32 | Dialog.setWindowIcon(QtGui.QIcon("bikini60s_layers.ico")) 33 | self.buttonBox = QtWidgets.QDialogButtonBox(Dialog) 34 | self.buttonBox.setGeometry(QtCore.QRect(310, 150, 341, 32)) 35 | self.buttonBox.setOrientation(QtCore.Qt.Horizontal) 36 | self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Ok) 37 | self.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).clicked.connect(self.ok_clicked) 38 | self.buttonBox.setObjectName("buttonBox") 39 | self.horizontalSlider = QtWidgets.QSlider(Dialog) 40 | self.horizontalSlider.setGeometry(QtCore.QRect(10, 110, 641, 21)) 41 | self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) 42 | self.horizontalSlider.setObjectName("horizontalSlider") 43 | self.horizontalSlider.setMaximum(100) 44 | self.horizontalSlider.setMinimum(0) 45 | self.horizontalSlider.setValue(10) 46 | self.horizontalSlider.valueChanged.connect(self.updateLineEdit) 47 | self.textEdit = QtWidgets.QLineEdit(Dialog) 48 | self.textEdit.setGeometry(QtCore.QRect(70, 60, 91, 31)) 49 | self.textEdit.setObjectName("textEdit") 50 | self.textEdit.setText("10") 51 | self.textEdit.textChanged.connect(self.updateTextEdit) 52 | self.validator = QIntValidator() 53 | self.textEdit.setValidator(self.validator) 54 | self.label = QtWidgets.QLabel(Dialog) 55 | self.label.setGeometry(QtCore.QRect(20, 20, 631, 31)) 56 | font = QtGui.QFont() 57 | font.setFamily("Microsoft YaHei UI") 58 | self.label.setFont(font) 59 | self.label.setObjectName("label") 60 | self.label_2 = QtWidgets.QLabel(Dialog) 61 | self.label_2.setGeometry(QtCore.QRect(20, 60, 631, 31)) 62 | font = QtGui.QFont() 63 | font.setFamily("Microsoft YaHei UI") 64 | self.label_2.setFont(font) 65 | self.label_2.setObjectName("label_2") 66 | self.label_3 = QtWidgets.QLabel(Dialog) 67 | self.label_3.setGeometry(QtCore.QRect(50, 150, 401, 31)) 68 | font = QtGui.QFont() 69 | font.setFamily("Microsoft YaHei") 70 | self.label_3.setFont(font) 71 | self.label_3.setObjectName("label_3") 72 | self.label_3.raise_() 73 | self.label_2.raise_() 74 | self.buttonBox.raise_() 75 | self.horizontalSlider.raise_() 76 | self.textEdit.raise_() 77 | self.label.raise_() 78 | 79 | self.retranslateUi(Dialog) 80 | self.buttonBox.accepted.connect(Dialog.accept) # type: ignore 81 | self.buttonBox.rejected.connect(Dialog.reject) # type: ignore 82 | QtCore.QMetaObject.connectSlotsByName(Dialog) 83 | 84 | def retranslateUi(self, Dialog): 85 | _translate = QtCore.QCoreApplication.translate 86 | Dialog.setWindowTitle(_translate("Dialog", "批量生成 - 配置")) 87 | self.label.setText(_translate("Dialog", "

生成的类型:{}

").format(self.generate_type)) 88 | self.label_2.setText(_translate("Dialog", "

数量:

")) 89 | self.label_3.setText(_translate("Dialog", "

某些时候,可能无法获取100张图片,最多99张

")) 90 | self.label_3.hide() 91 | 92 | def updateLineEdit(self, value): 93 | self.textEdit.setText(str(value)) 94 | 95 | def updateTextEdit(self, text): 96 | try: 97 | if int(text) < 1: 98 | text = 1 99 | self.textEdit.setText(str(text)) 100 | elif int(text) > 100: 101 | text = 100 102 | self.textEdit.setText(str(text)) 103 | else: 104 | pass 105 | 106 | if int(text) >= 100: 107 | self.label_3.show() 108 | else: 109 | self.label_3.hide() 110 | 111 | self.horizontalSlider.setValue(int(text)) 112 | except ValueError: 113 | pass 114 | 115 | def ok_clicked(self): 116 | global number 117 | number = self.horizontalSlider.value() 118 | self.number = number 119 | 120 | 121 | # app = QtWidgets.QApplication(sys.argv) 122 | # dialog = QtWidgets.QDialog() # 创建一个QDialog对象 123 | # ui = Ui_Dialog("666") 124 | # ui.setupUi(dialog) # 将Ui_Dialog实例与QDialog对象关联 125 | # dialog.show() 126 | # sys.exit(app.exec_()) 127 | -------------------------------------------------------------------------------- /old-versions/V3/bikini60s_cloud-download.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/bikini60s_cloud-download.ico -------------------------------------------------------------------------------- /old-versions/V3/bikini60s_cloud-download.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 11 | 12 | -------------------------------------------------------------------------------- /old-versions/V3/bikini60s_layers.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/bikini60s_layers.ico -------------------------------------------------------------------------------- /old-versions/V3/bikini60s_layers.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 10 | 12 | 13 | -------------------------------------------------------------------------------- /old-versions/V3/progress.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'progress.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.15.9 6 | # 7 | # WARNING: Any manual changes made to this file will be lost when pyuic5 is 8 | # run again. Do not edit this file unless you know what you are doing. 9 | 10 | 11 | from PyQt5 import QtCore, QtGui, QtWidgets 12 | from PyQt5.QtCore import Qt 13 | import sys 14 | 15 | 16 | class Ui_Dialog(object): 17 | def __init__(self, progress_num): 18 | self.progress_num = progress_num 19 | print("排队 " + str(progress_num) + " 线程") 20 | 21 | def setupUi(self, Dialog): 22 | Dialog.setObjectName("Dialog") 23 | Dialog.resize(539, 158) 24 | Dialog.setWindowFlags(Dialog.windowFlags() & ~Qt.WindowContextHelpButtonHint) 25 | Dialog.setFixedSize(Dialog.width(), Dialog.height()); 26 | Dialog.setWindowFlag(QtCore.Qt.WindowCloseButtonHint, False) 27 | Dialog.setModal(True) 28 | Dialog.setWindowIcon(QtGui.QIcon("bikini60s_cloud-download.ico")) 29 | self.progressBar = QtWidgets.QProgressBar(Dialog) 30 | self.progressBar.setGeometry(QtCore.QRect(10, 70, 531, 41)) 31 | font = QtGui.QFont() 32 | font.setFamily("Microsoft YaHei") 33 | font.setPointSize(11) 34 | self.progressBar.setFont(font) 35 | self.progressBar.setMaximum(self.progress_num) 36 | self.progressBar.setProperty("value", 0) 37 | self.progressBar.setObjectName("progressBar") 38 | self.label = QtWidgets.QLabel(Dialog) 39 | self.label.setGeometry(QtCore.QRect(180, 20, 171, 31)) 40 | font = QtGui.QFont() 41 | font.setFamily("Microsoft YaHei") 42 | font.setPointSize(11) 43 | self.label.setFont(font) 44 | self.label.setObjectName("label") 45 | self.label_2 = QtWidgets.QLabel(Dialog) 46 | self.label_2.setGeometry(QtCore.QRect(10, 120, 511, 31)) 47 | font = QtGui.QFont() 48 | font.setFamily("Microsoft YaHei") 49 | font.setPointSize(11) 50 | self.label_2.setFont(font) 51 | self.label_2.setObjectName("label_2") 52 | 53 | self.retranslateUi(Dialog) 54 | QtCore.QMetaObject.connectSlotsByName(Dialog) 55 | 56 | def retranslateUi(self, Dialog): 57 | _translate = QtCore.QCoreApplication.translate 58 | Dialog.setWindowTitle(_translate("Dialog", "生成进度")) 59 | self.label.setText(_translate("Dialog", "

正在生成(共 {} 个)

").format(self.progress_num)) 60 | self.label_2.setText(_translate("Dialog", "

进度:

")) 61 | 62 | def progress(self, add_num, progress_str): 63 | _translate = QtCore.QCoreApplication.translate 64 | #print("完成 " + str(add_num) + "%") 65 | self.progressBar.setValue(add_num) 66 | self.label_2.setText(_translate("Dialog", "

进度:{}

").format(progress_str)) 67 | 68 | def reject(self): 69 | pass # 忽略关闭事件 70 | 71 | def closeEvent(self, event): 72 | event.ignore() # 忽略关闭事件 73 | -------------------------------------------------------------------------------- /old-versions/V3/progress.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | Dialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 539 10 | 158 11 | 12 | 13 | 14 | Dialog 15 | 16 | 17 | 18 | 19 | 10 20 | 70 21 | 531 22 | 41 23 | 24 | 25 | 26 | 27 | Microsoft YaHei 28 | 11 29 | 30 | 31 | 32 | 0 33 | 34 | 35 | 36 | 37 | 38 | 190 39 | 20 40 | 161 41 | 31 42 | 43 | 44 | 45 | 46 | Microsoft YaHei 47 | 11 48 | 49 | 50 | 51 | <html><head/><body><p>正在生成(共 n 个)</p></body></html> 52 | 53 | 54 | 55 | 56 | 57 | 10 58 | 120 59 | 511 60 | 31 61 | 62 | 63 | 64 | 65 | Microsoft YaHei 66 | 11 67 | 68 | 69 | 70 | <html><head/><body><p>进度:</p></body></html> 71 | 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /old-versions/V3/test.py: -------------------------------------------------------------------------------- 1 | # from PyQt5 import QtCore, QtGui, QtWidgets 2 | # from PyQt5.QtCore import Qt 3 | # import progress, sys, time 4 | # app = QtWidgets.QApplication(sys.argv) 5 | # ProgressWindow = QtWidgets.QDialog() 6 | # ui2 = progress.Ui_Dialog(10) 7 | # ui2.setupUi(ProgressWindow) 8 | # ProgressWindow.show() 9 | 10 | # def update_progress_bar(): 11 | # for i in range(10): 12 | # ui2.progress(i + 1) 13 | # ProgressWindow.update() 14 | # time.sleep(0.5) 15 | 16 | # # 创建计时器 17 | # timer = QtCore.QTimer() 18 | # timer.timeout.connect(update_progress_bar) 19 | # timer.start(500) 20 | 21 | # app.exec_() 22 | 23 | import os 24 | 25 | root_directory = "./Wallpapers" 26 | file_list = [] 27 | 28 | for root, dirs, files in os.walk(root_directory): 29 | for file in files: 30 | file_path = os.path.join(root, file) 31 | file_list.append(file_path) 32 | 33 | print("文件列表:", file_list) -------------------------------------------------------------------------------- /old-versions/V3/untitled.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 440 10 | 780 11 | 12 | 13 | 14 | Qt::DefaultContextMenu 15 | 16 | 17 | 壁纸生成器 2.0 - AI画图 18 | 19 | 20 | false 21 | 22 | 23 | #centralwidget{image: url(:/PNG/BACKIMG.png);} 24 | 25 | 26 | 27 | 28 | 29 | 70 30 | 50 31 | 301 32 | 51 33 | 34 | 35 | 36 | background-color: rgb(255, 255, 255); 37 | 38 | 39 | <html><head/><body><p><span style=" font-size:16pt; font-weight:600;">壁纸生成器 - AI 画图</span></p></body></html> 40 | 41 | 42 | 43 | 44 | 45 | 60 46 | 250 47 | 311 48 | 51 49 | 50 | 51 | 52 | 在线生成 - 电脑壁纸 53 | 54 | 55 | 56 | 57 | 58 | 60 59 | 310 60 | 311 61 | 51 62 | 63 | 64 | 65 | 在线生成 - 手机壁纸 66 | 67 | 68 | 69 | 70 | 71 | 60 72 | 370 73 | 311 74 | 51 75 | 76 | 77 | 78 | 在线生成 - 兽控 79 | 80 | 81 | 82 | 83 | 84 | 60 85 | 430 86 | 311 87 | 51 88 | 89 | 90 | 91 | 在线生成 - 星空 92 | 93 | 94 | 95 | 96 | 97 | 60 98 | 490 99 | 311 100 | 61 101 | 102 | 103 | 104 | 在线生成 - 乱七八糟的图片 105 | (可能包含未过审图片!) 106 | 107 | 108 | 109 | 110 | 111 | 310 112 | 730 113 | 121 114 | 41 115 | 116 | 117 | 118 | 关于 119 | 120 | 121 | 122 | 123 | 124 | 270 125 | 580 126 | 141 127 | 31 128 | 129 | 130 | 131 | 132 | Microsoft YaHei 133 | 11 134 | 50 135 | false 136 | 137 | 138 | 139 | 140 | 141 | 142 | false 143 | 144 | 145 | 146 | 147 | 148 | 290 149 | 580 150 | 131 151 | 31 152 | 153 | 154 | 155 | 156 | Microsoft YaHei 157 | 50 158 | false 159 | 160 | 161 | 162 | 163 | 164 | 165 | <html><head/><body><p><span style=" font-size:11pt; color:#ffffff;">批量生成(新)</span></p></body></html> 166 | 167 | 168 | label_2 169 | checkBox 170 | label 171 | pushButton 172 | pushButton_2 173 | pushButton_3 174 | pushButton_4 175 | pushButton_5 176 | pushButton_6 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | -------------------------------------------------------------------------------- /old-versions/V3/壁纸生成器V3.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | 4 | from PyQt5 import QtCore, QtGui, QtWidgets 5 | from PyQt5.QtGui import QPixmap, QPalette, QColor 6 | import sys 7 | import requests 8 | import json 9 | import tkinter 10 | from skimage import io 11 | from tkinter import * 12 | from tkinter import messagebox 13 | import matplotlib.pyplot as plt 14 | import pyperclip 15 | import os 16 | import time 17 | import asyncio 18 | import easygui 19 | import threading 20 | import queue 21 | import random 22 | 23 | root = Tk() 24 | root.withdraw() 25 | 26 | download_queue = queue.Queue() 27 | 28 | class Ui_MainWindow(object): 29 | def __init__(self): 30 | self.completed_threads = 0 31 | 32 | 33 | def setupUi(self, MainWindow): 34 | 35 | root_directory = "./Wallpapers" 36 | file_list = [] 37 | 38 | for root, dirs, files in os.walk(root_directory): 39 | for file in files: 40 | file_path = os.path.join(root, file) 41 | file_list.append(file_path) 42 | print("读取壁纸:", file_list) 43 | 44 | MainWindow.setObjectName("MainWindow") 45 | MainWindow.resize(440, 780) 46 | MainWindow.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu) 47 | MainWindow.setAutoFillBackground(False) 48 | random_image_path = random.choice(file_list) 49 | random_image_path = random.choice(file_list) 50 | random_image_path = random.choice(file_list) 51 | random_image_path = random.choice(file_list) 52 | random_image_path = random.choice(file_list) 53 | print("设置壁纸:", random_image_path) 54 | #stylesheet = f"#centralwidget {{ image: url({random_image_path}); }}" 55 | #normalized_path = os.path.normpath(random_image_path) 56 | #stylesheet = "#centralwidget {{ background-image: url({}); }}".format(normalized_path.replace('\\', '/')) 57 | # 获取窗口的宽度和高度 58 | 59 | # stylesheet = "#centralwidget {{ \ 60 | # background-image: url({}); \ 61 | # background-position: center; \ 62 | # background-size: contain; \ 63 | # background-repeat: no-repeat; \ 64 | # }}".format(normalized_path.replace('\\', '/')) 65 | # MainWindow.setStyleSheet(stylesheet) 66 | 67 | # 创建一个 QPixmap 对象来加载图片 68 | pixmap = QPixmap(random_image_path) 69 | 70 | # 获取窗口的高度 71 | window_height = MainWindow.height() 72 | 73 | # 计算调整后的高度和宽度 74 | scaled_height = window_height 75 | scaled_width = int(pixmap.width() * (scaled_height / pixmap.height())) 76 | 77 | # 缩放图片 78 | pixmap = pixmap.scaled(scaled_width, scaled_height, aspectRatioMode=QtCore.Qt.KeepAspectRatio, transformMode=QtCore.Qt.SmoothTransformation) 79 | 80 | # 创建一个 QPalette 对象,并设置背景图片 81 | palette = QPalette() 82 | palette.setBrush(QPalette.Background, QtGui.QBrush(pixmap)) 83 | 84 | # 设置主窗口的调色板 85 | MainWindow.setPalette(palette) 86 | 87 | #MainWindow.setStyleSheet("#centralwidget{image: url(BACKIMG.png);}") 88 | # MainWindow.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint) 89 | MainWindow.setFixedSize(MainWindow.width(), MainWindow.height()); 90 | MainWindow.setWindowIcon(QtGui.QIcon("ico.ico")) 91 | self.centralwidget = QtWidgets.QWidget(MainWindow) 92 | self.centralwidget.setObjectName("centralwidget") 93 | self.label = QtWidgets.QLabel(self.centralwidget) 94 | self.label.setGeometry(QtCore.QRect(70, 50, 301, 51)) 95 | self.label.setStyleSheet("background-color: rgb(255, 255, 255);") 96 | self.label.setObjectName("label") 97 | self.pushButton = QtWidgets.QPushButton(self.centralwidget) 98 | self.pushButton.setGeometry(QtCore.QRect(60, 250, 311, 51)) 99 | self.pushButton.setObjectName("pushButton") 100 | self.pushButton.clicked.connect(self.PC) 101 | self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) 102 | self.pushButton_2.setGeometry(QtCore.QRect(60, 310, 311, 51)) 103 | self.pushButton_2.setObjectName("pushButton_2") 104 | self.pushButton_2.clicked.connect(self.Phone) 105 | self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) 106 | self.pushButton_3.setGeometry(QtCore.QRect(60, 370, 311, 51)) 107 | self.pushButton_3.setObjectName("pushButton_3") 108 | self.pushButton_3.clicked.connect(self.Cat) 109 | self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget) 110 | self.pushButton_4.setGeometry(QtCore.QRect(60, 430, 311, 51)) 111 | self.pushButton_4.setObjectName("pushButton_4") 112 | self.pushButton_4.clicked.connect(self.Starry) 113 | self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget) 114 | self.pushButton_5.setGeometry(QtCore.QRect(60, 490, 311, 61)) 115 | self.pushButton_5.setObjectName("pushButton_5") 116 | self.pushButton_5.clicked.connect(self.Ran) 117 | self.pushButton_6 = QtWidgets.QPushButton(self.centralwidget) 118 | self.pushButton_6.setGeometry(QtCore.QRect(310, 730, 121, 41)) 119 | self.pushButton_6.setObjectName("pushButton_6") 120 | self.pushButton_6.clicked.connect(self.about) 121 | self.checkBox = QtWidgets.QCheckBox(self.centralwidget) 122 | self.checkBox.setGeometry(QtCore.QRect(270, 580, 141, 31)) 123 | font = QtGui.QFont() 124 | font.setFamily("Microsoft YaHei") 125 | font.setPointSize(11) 126 | font.setBold(False) 127 | font.setWeight(50) 128 | self.checkBox.setFont(font) 129 | self.checkBox.setText("") 130 | self.checkBox.setTristate(False) 131 | self.checkBox.setObjectName("checkBox") 132 | self.label_2 = QtWidgets.QLabel(self.centralwidget) 133 | self.label_2.setGeometry(QtCore.QRect(290, 580, 131, 31)) 134 | font = QtGui.QFont() 135 | font.setFamily("Microsoft YaHei") 136 | font.setBold(False) 137 | font.setWeight(50) 138 | self.label_2.setFont(font) 139 | self.label_2.setStyleSheet("background-color: rgb(255, 255, 255);") 140 | self.label_2.setObjectName("label_2") 141 | self.label_2.raise_() 142 | self.checkBox.raise_() 143 | self.checkBox.stateChanged.connect(self.checked) 144 | MainWindow.setCentralWidget(self.centralwidget) 145 | 146 | self.retranslateUi(MainWindow) 147 | QtCore.QMetaObject.connectSlotsByName(MainWindow) 148 | 149 | def checked(self): 150 | pass 151 | 152 | def retranslateUi(self, MainWindow): 153 | _translate = QtCore.QCoreApplication.translate 154 | MainWindow.setWindowTitle(_translate("MainWindow", "壁纸生成器 3.0 - 图像生成")) 155 | self.label.setText(_translate("MainWindow", "

壁纸生成器 - 图像生成

")) 156 | self.pushButton.setText(_translate("MainWindow", "在线生成 - 电脑壁纸")) 157 | self.pushButton_2.setText(_translate("MainWindow", "在线生成 - 手机壁纸")) 158 | self.pushButton_3.setText(_translate("MainWindow", "在线生成 - 兽控")) 159 | self.pushButton_4.setText(_translate("MainWindow", "在线生成 - 星空")) 160 | self.pushButton_5.setText(_translate("MainWindow", "在线生成 - 随机图片\n" 161 | "(可能包含未过审图片!)")) 162 | self.pushButton_6.setText(_translate("MainWindow", "关于")) 163 | self.label_2.setText(_translate("MainWindow", "

批量生成(新)

")) 164 | 165 | def closeEvent(self, event): 166 | sys.exit(0) 167 | 168 | def PC(self): 169 | _translate = QtCore.QCoreApplication.translate 170 | self.label.setText(_translate("MainWindow", "

请等待……

")) 171 | api = "https://api.iw233.cn/api.php?sort=pc" 172 | 173 | g_type = '电脑壁纸' 174 | 175 | self.ReadPicture(api, g_type) 176 | 177 | def Phone(self): 178 | _translate = QtCore.QCoreApplication.translate 179 | self.label.setText(_translate("MainWindow", "

请等待……

")) 180 | api = "https://api.iw233.cn/api.php?sort=mp" 181 | 182 | g_type = '手机壁纸' 183 | 184 | self.ReadPicture(api, g_type) 185 | 186 | def Cat(self): 187 | _translate = QtCore.QCoreApplication.translate 188 | self.label.setText(_translate("MainWindow", "

请等待……

")) 189 | api = "https://api.iw233.cn/api.php?sort=cat" 190 | 191 | g_type = '兽控壁纸' 192 | 193 | self.ReadPicture(api, g_type) 194 | 195 | def Starry(self): 196 | _translate = QtCore.QCoreApplication.translate 197 | self.label.setText(_translate("MainWindow", "

请等待……

")) 198 | api = "https://api.iw233.cn/api.php?sort=xing" 199 | 200 | g_type = '星空壁纸' 201 | 202 | self.ReadPicture(api, g_type) 203 | 204 | def Ran(self): 205 | _translate = QtCore.QCoreApplication.translate 206 | self.label.setText(_translate("MainWindow", "

请等待……

")) 207 | api = "https://api.iw233.cn/api.php?sort=random" 208 | 209 | g_type = '随机壁纸' 210 | 211 | self.ReadPicture(api, g_type) 212 | 213 | def download_image(self, url, save, i): 214 | print('Thread {} started'.format(i)) 215 | image = io.imread(url) 216 | io.imsave(save, image) 217 | print(save + " 结束") 218 | 219 | self.completed_threads += 1 220 | download_queue.put(save) 221 | 222 | 223 | def ReadPicture(self,api,g_type): 224 | self.completed_threads = 0 225 | self.pushButton.setEnabled(False) 226 | self.pushButton_2.setEnabled(False) 227 | self.pushButton_3.setEnabled(False) 228 | self.pushButton_4.setEnabled(False) 229 | self.pushButton_5.setEnabled(False) 230 | self.pushButton_6.setEnabled(False) 231 | self.checkBox.setEnabled(False) 232 | 233 | #选择保存路径 234 | self.number = 1 235 | self.choosed = False 236 | 237 | if self.checkBox.isChecked() == True: 238 | import batch_window 239 | BatchWindow = QtWidgets.QDialog() 240 | ui1 = batch_window.Ui_Dialog(g_type) 241 | ui1.setupUi(BatchWindow) 242 | result = BatchWindow.exec_() 243 | 244 | if result == QtWidgets.QDialog.Accepted: 245 | self.number = batch_window.number 246 | self.choosed = True 247 | 248 | save = None 249 | if (self.checkBox.isChecked() == True and self.choosed == True) or self.checkBox.isChecked() == False: 250 | save = easygui.filesavebox(msg="*.PNG",title="图片保存位置",filetypes=["*.PNG"]) 251 | start_time = time.time() 252 | 253 | _translate = QtCore.QCoreApplication.translate 254 | if save != None: 255 | parameters = { 256 | "type": "json", 257 | 'num': self.number 258 | } 259 | response = requests.get(api, params=parameters) 260 | # try: 261 | # print(response.text()) 262 | 263 | outputurl = response.json() 264 | print('拉取 ' + str(outputurl)) 265 | output = outputurl["pic"] 266 | if int(self.number) == 1: 267 | print('开始下载……') 268 | save = save + ".png" 269 | image = io.imread(output[0]) 270 | io.imsave(save, image) 271 | img = plt.imread(save) 272 | fig = plt.figure('生成的图片(正在在线查看,保存后查看效果更佳)') 273 | ax = fig.add_subplot(111) 274 | plt.axis('off') 275 | pyperclip.copy(output[0]) 276 | os.startfile(save) 277 | end_time = time.time() 278 | spend_time = end_time - start_time 279 | print('结束\n') 280 | messagebox.showinfo('生成完毕','花费了 {} 秒钟,图片已保存。'.format(spend_time)) 281 | else: 282 | print('开始下载……') 283 | file_name = save 284 | import progress 285 | ProgressWindow = QtWidgets.QDialog() 286 | ui2 = progress.Ui_Dialog(len(output)) 287 | ui2.setupUi(ProgressWindow) 288 | ProgressWindow.show() 289 | # for i in range(len(output)): 290 | # url = output[i] 291 | # image = io.imread(url) 292 | # if i != 0: 293 | # save = file_name + ' (' + str(i) + ").png" 294 | # else: 295 | # save = file_name + ".png" 296 | # save = os.path.abspath(save) 297 | # io.imsave(save, image) 298 | # print(save + " 结束") 299 | # ui2.progress(i+1) 300 | download_threads = [] 301 | 302 | times = 0 303 | for i in range(len(output)): 304 | times += 1 305 | url = output[i] 306 | if i != 0: 307 | save = file_name + ' (' + str(i) + ").png" 308 | else: 309 | save = file_name + ".png" 310 | save_1 = os.path.abspath(save) 311 | 312 | # 创建并启动一个新的下载线程 313 | thread = threading.Thread(target=self.download_image, args=(url, save_1, i)) 314 | thread.start() 315 | 316 | # 将下载线程添加到列表中 317 | download_threads.append(thread) 318 | 319 | # completed_threads = 0 320 | # while completed_threads < len(output): 321 | # 检查是否有线程下载完成 322 | # if not download_queue.empty(): 323 | # completed_threads += 1 324 | 325 | 326 | # 继续处理 UI 事件 327 | 328 | 329 | # 更新进度条 330 | 331 | while completed_threads < len(output): 332 | print(download_queue) 333 | print(completed_threads) 334 | # 检查是否有线程下载完成 335 | if not download_queue.empty(): 336 | completed_threads += 1 337 | ui2.progress(completed_threads) 338 | 339 | while self.completed_threads < len(output): 340 | if not download_queue.empty(): 341 | ui2.progress(self.completed_threads, os.path.basename(download_queue.get()) + " 完成") 342 | download_queue.queue.clear() 343 | # 继续处理 UI 事件 344 | 345 | break 346 | 347 | QtCore.QCoreApplication.processEvents() 348 | 349 | # v3.1更新多线程下载,把while下的所有代码向左缩进一次并把break删掉即可实现 350 | 351 | 352 | # 等待所有下载线程完成 353 | for thread in download_threads: 354 | thread.join() 355 | 356 | ProgressWindow.hide() 357 | end_time = time.time() 358 | spend_time = end_time - start_time 359 | print('全部结束\n') 360 | os.startfile(os.path.dirname(save)) 361 | messagebox.showinfo('生成完毕','一共花费了 {} 秒钟,图片均已保存。'.format(spend_time)) 362 | # except: 363 | # messagebox.showwarning("Error",response) 364 | 365 | 366 | self.pushButton.setEnabled(True) 367 | self.pushButton_2.setEnabled(True) 368 | self.pushButton_3.setEnabled(True) 369 | self.pushButton_4.setEnabled(True) 370 | self.pushButton_5.setEnabled(True) 371 | self.pushButton_6.setEnabled(True) 372 | self.checkBox.setEnabled(True) 373 | self.label.setText(_translate("MainWindow", "

壁纸生成器 - 图像生成

")) 374 | 375 | def about(self): 376 | messagebox.showinfo('关于','名称:壁纸生成器 3.0 图片生成插件\n依赖API:MirlKoiAPI\n API源:https://api.iw233.cn/api.php?\n 本地化:思锐工作室\n\ntips:生成壁纸时出现程序未响应属于正常现象,请耐心等待。\n 若发现点击按钮后的10分钟内程序没有弹出壁纸,请多试几次或隔日再试,这可能是由于服务器维护导致的。') 377 | 378 | 379 | # import 2.0资源_rc 380 | if __name__ == "__main__": 381 | app = QtWidgets.QApplication(sys.argv) 382 | MainWindow = QtWidgets.QMainWindow() 383 | ui = Ui_MainWindow() 384 | ui.setupUi(MainWindow) 385 | MainWindow.show() 386 | sys.exit(app.exec_()) 387 | -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/AutoWpChange.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/插件-自动换壁纸/AutoWpChange.lnk -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/AutoWpChange_V2.pyw: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # coding=utf-8 3 | 4 | import sys 5 | import requests 6 | import json 7 | from skimage import io 8 | import tkinter 9 | import matplotlib.pyplot as plt 10 | import os 11 | import win32gui,win32con 12 | from threading import Thread 13 | import easygui 14 | import time 15 | import ctypes #这个库将会用到 16 | import webbrowser as web 17 | import wx.adv 18 | import psutil 19 | from tkinter import messagebox 20 | 21 | # 获取程序所在的目录 22 | script_path = sys.executable 23 | script_directory = os.path.dirname(script_path) 24 | app_dir = script_directory 25 | # 修改当前工作目录为程序所在的目录 26 | os.chdir(app_dir) 27 | print(app_dir) 28 | 29 | user_setting = [] 30 | script_path = sys.argv[0] 31 | script_directory = os.path.dirname(script_path) 32 | root_path = script_directory + os.sep 33 | 34 | def ifAdmin(): 35 | try: 36 | return ctypes.windll.shell32.IsUserAnAdmin() 37 | except: 38 | return False 39 | 40 | def is_process_running(process_name): 41 | for proc in psutil.process_iter(['name']): 42 | if proc.info['name'] == process_name: 43 | return True 44 | return False 45 | 46 | root = tkinter.Tk() 47 | root.withdraw() 48 | 49 | def settings(): 50 | if is_process_running('自动更换壁纸.exe'): 51 | pass 52 | else: 53 | os.startfile('自动更换壁纸.exe') 54 | 55 | def notify(): 56 | print("5") 57 | notification = wx.adv.NotificationMessage( 58 | title="ACG生成 - 新壁纸", 59 | message="壁纸刷新成功", 60 | parent=None, 61 | flags=wx.ICON_INFORMATION 62 | ) 63 | # self.icon.notify("壁纸刷新成功", "AI画图 - 新壁纸") 64 | notification.Show() 65 | 66 | def error(): 67 | notification = wx.adv.NotificationMessage( 68 | title="ACG生成 - 未能刷新壁纸", 69 | message="壁纸刷新失败,错误报告已生成", 70 | parent=None, 71 | flags=wx.ICON_INFORMATION 72 | ) 73 | notification.Show() 74 | # global icon 75 | # self.icon.notify("壁纸刷新失败,请多次重试", "AI画图 - 未能刷新壁纸") 76 | 77 | def handrefresh(): 78 | notification = wx.adv.NotificationMessage( 79 | title="开始", 80 | message="请等待,壁纸即将刷新", 81 | parent=None, 82 | flags=wx.ICON_INFORMATION 83 | ) 84 | notification.Show() 85 | # global icon 86 | # self.icon.notify("请等待,壁纸即将刷新", "开始") 87 | 88 | refresh() 89 | 90 | 91 | def end(): 92 | os._exit(0) 93 | 94 | #def tray_process_func(): 95 | def refresh(): 96 | print('3') 97 | global user_setting 98 | 99 | with open(root_path + "RefreshSetting.Sr", "r") as file: 100 | user_setting = file.read() 101 | 102 | if 'PC' in user_setting: 103 | api = "https://api.iw233.cn/api.php?sort=pc" 104 | elif 'Starry' in user_setting: 105 | api = "https://api.iw233.cn/api.php?sort=xing" 106 | elif 'Top' in user_setting: 107 | api = "https://api.iw233.cn/api.php?sort=top" 108 | else: 109 | api = "https://api.iw233.cn/api.php?sort=random" 110 | 111 | parameters = { 112 | "type": "json", 113 | 'num': 1 114 | } 115 | try: 116 | print('4') 117 | response = requests.get(api, params=parameters) 118 | # print(response.text()) 119 | outputurl = json.dumps(response.json()) 120 | print(outputurl) 121 | output = outputurl[10:-3] 122 | 123 | image = io.imread(output) 124 | io.imsave(root_path + 'wallpaper.bmp', image) 125 | img = plt.imread(root_path + 'wallpaper.bmp') 126 | path = os.path.abspath(root_path + 'wallpaper.bmp') 127 | win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,path, win32con.SPIF_SENDWININICHANGE) 128 | print(path) 129 | notify() 130 | except: 131 | print('5') 132 | time.sleep(1) 133 | error() 134 | easygui.exceptionbox() 135 | 136 | class MyTaskBarIcon(wx.adv.TaskBarIcon): 137 | def __init__(self): 138 | super().__init__() 139 | self.SetIcon(wx.Icon(root_path + 'ico.ico'), '壁纸生成器 - 托盘程序') 140 | self.Bind(wx.adv.EVT_TASKBAR_LEFT_DCLICK, self.on_left_click) 141 | # self.tray_app = icon_set(MainWindow, ui, open_window) 142 | 143 | def CreatePopupMenu(self): 144 | # 创建弹出菜单 145 | menu = wx.Menu() 146 | menu.Append(1, '立刻生成并刷新壁纸') 147 | menu.Append(2, '打开生成设置') 148 | menu.AppendSeparator() 149 | menu.Append(3, '退出(若设定了开机启动,下次开机仍会启动)') 150 | menu.AppendSeparator() 151 | menu.Append(4, '捐赠几行代码,助力我们高效开发') 152 | self.Bind(wx.EVT_MENU, self.on_menu_1_select, id=1) 153 | self.Bind(wx.EVT_MENU, self.on_menu_2_select, id=2) 154 | self.Bind(wx.EVT_MENU, self.on_menu_3_select, id=3) 155 | self.Bind(wx.EVT_MENU, self.juanzeng, id=4) 156 | return menu 157 | 158 | def on_left_click(self, event): 159 | settings() 160 | 161 | 162 | def on_menu_1_select(self, event): 163 | if os.path.isfile(root_path + "RefreshSetting.Sr") == False: 164 | settings() 165 | messagebox.showinfo("提示", "你还没有刷新壁纸的配置,请进行配置") 166 | else: 167 | handrefresh() 168 | 169 | 170 | def on_menu_2_select(self, event): 171 | settings() 172 | 173 | def on_menu_3_select(self, event): 174 | end() 175 | 176 | def juanzeng(self, event): 177 | web.open('https://afdian.net/a/srinternet') 178 | 179 | 180 | if __name__ == '__main__': 181 | thr = Thread(target=refresh) 182 | 183 | if os.path.isfile(root_path + "RefreshSetting.Sr") == False: 184 | settings() 185 | else: 186 | with open(root_path + "RefreshSetting.Sr", "r") as file: 187 | user_setting = file.read() 188 | print('1') 189 | print(user_setting) 190 | if 'AutoChange' in user_setting: 191 | thr.start() 192 | print('2') 193 | 194 | app1 = wx.App(False) 195 | 196 | # 创建任务栏图标对象 197 | task_bar_icon = MyTaskBarIcon() 198 | 199 | app1.MainLoop() 200 | -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/Bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/插件-自动换壁纸/Bg.jpg -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/DingTalk_JinBuTi_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/插件-自动换壁纸/DingTalk_JinBuTi_Regular.ttf -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/JPG.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | Bg.jpg 4 | 5 | 6 | -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/RefreshSetting.Sr: -------------------------------------------------------------------------------- 1 | AutoStart 2 | AutoChange 3 | PC 4 | -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/ico.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/插件-自动换壁纸/ico.ico -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/taskkill.cmd: -------------------------------------------------------------------------------- 1 | taskkill /f /im Automatic_wallpaper_change.exe -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/test.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | script_path = sys.argv[0] 4 | script_directory = os.path.dirname(script_path) 5 | print(script_directory) 6 | -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/wallpaper (2).bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/插件-自动换壁纸/wallpaper (2).bmp -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/wallpaper (3).bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/插件-自动换壁纸/wallpaper (3).bmp -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/wallpaper.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/插件-自动换壁纸/wallpaper.bmp -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/wallpaper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/插件-自动换壁纸/wallpaper.png -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/受限制的(学校专用)/limit.ini: -------------------------------------------------------------------------------- 1 | [Installation configuration] 2 | Prohibit the use of types that may generate wallpapers that contain an X-level. -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/启动.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/插件-自动换壁纸/启动.lnk -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/壁纸生成器-自动壁纸设置界面.exe.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/壁纸生成器-自动壁纸设置界面.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/old-versions/V3/插件-自动换壁纸/壁纸生成器-自动壁纸设置界面.pdb -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/壁纸生成器-自动壁纸设置界面.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 壁纸生成器-自动壁纸设置界面 6 | 7 | 8 | 9 | 10 | 11 | 用于定义“我的 WPF 命名空间”中的可用属性的模块 12 | 13 | 14 | 15 | 16 | 17 | 返回正在运行的应用程序的应用程序对象 18 | 19 | 20 | 21 | 22 | 返回有关主机计算机的信息。 23 | 24 | 25 | 26 | 27 | 返回当前用户的信息。 如果希望使用当前的 28 | Windows 用户凭据来运行应用程序,请调用 My.User.InitializeWithWindowsUser()。 29 | 30 | 31 | 32 | 33 | 返回应用程序日志。可以使用应用程序的配置文件配置侦听器。 34 | 35 | 36 | 37 | 38 | 返回项目中定义的 Windows 集合。 39 | 40 | 41 | 42 | 43 | A strongly-typed resource class, for looking up localized strings, etc. 44 | 45 | 46 | 47 | 48 | Returns the cached ResourceManager instance used by this class. 49 | 50 | 51 | 52 | 53 | Overrides the current thread's CurrentUICulture property for all 54 | resource lookups using this strongly typed resource class. 55 | 56 | 57 | 58 | 59 | Application 60 | 61 | 62 | 63 | 64 | InitializeComponent 65 | 66 | 67 | 68 | 69 | Application Entry Point. 70 | 71 | 72 | 73 | 74 | MainWindow 75 | 76 | 77 | 78 | 79 | InitializeComponent 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/废稿.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import requests 3 | import json 4 | from skimage import io 5 | from tkinter import * 6 | import matplotlib.pyplot as plt 7 | import os 8 | import win32gui,win32con 9 | import pystray 10 | from PIL import Image 11 | from pystray import MenuItem 12 | from threading import Thread 13 | 14 | def notify(icon): 15 | icon.notify("壁纸刷新成功", "AI画图 - 新壁纸") 16 | 17 | def error(icon): 18 | icon.notify("壁纸刷新失败,请多次重试", "AI画图 - 未能刷新壁纸") 19 | 20 | def handrefresh(): 21 | global icon 22 | icon.notify("请等待,壁纸即将刷新", "开始") 23 | refresh() 24 | 25 | 26 | def refresh(): 27 | global icon 28 | 29 | api = "https://dev.iw233.cn/api.php?sort=xing" 30 | parameters = { 31 | "type": "json", 32 | 'num': 1 33 | } 34 | response = requests.get(api, params=parameters) 35 | try: 36 | # print(response.text()) 37 | outputurl = json.dumps(response.json()) 38 | print(outputurl) 39 | output = outputurl[10:-3] 40 | 41 | image = io.imread(output) 42 | io.imsave('wallpaper.png', image) 43 | img = plt.imread('wallpaper.png') 44 | path = os.path.abspath('.\\wallpaper.png') 45 | win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,path, win32con.SPIF_SENDWININICHANGE) 46 | print(path) 47 | notify(icon) 48 | except: 49 | error(icon) 50 | 51 | 52 | def end(): 53 | sys.exit(0) 54 | 55 | thr = Thread(target=refresh) 56 | thr.start() 57 | menu = (MenuItem('生成并刷新壁纸',action=handrefresh), MenuItem('退出', action=end)) 58 | image = Image.open("ico.ico") 59 | icon = pystray.Icon("minmenu", image, "AI画图 - 每日自动刷新壁纸", menu) 60 | icon.run() 61 | -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/托盘程序设置UI.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file '托盘程序设置UI.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.15.9 6 | # 7 | # WARNING: Any manual changes made to this file will be lost when pyuic5 is 8 | # run again. Do not edit this file unless you know what you are doing. 9 | 10 | 11 | from PyQt5 import QtCore, QtGui, QtWidgets 12 | 13 | 14 | class Ui_MainWindow(object): 15 | def setupUi(self, MainWindow): 16 | MainWindow.setObjectName("MainWindow") 17 | MainWindow.resize(398, 779) 18 | MainWindow.setStyleSheet("image: url(:/JPG/Bg.jpg);") 19 | self.centralwidget = QtWidgets.QWidget(MainWindow) 20 | self.centralwidget.setObjectName("centralwidget") 21 | self.checkBox = QtWidgets.QCheckBox(self.centralwidget) 22 | self.checkBox.setGeometry(QtCore.QRect(20, 270, 191, 19)) 23 | font = QtGui.QFont() 24 | font.setFamily("微软雅黑") 25 | font.setPointSize(11) 26 | font.setBold(True) 27 | font.setWeight(75) 28 | self.checkBox.setFont(font) 29 | self.checkBox.setStyleSheet("") 30 | self.checkBox.setObjectName("checkBox") 31 | self.label = QtWidgets.QLabel(self.centralwidget) 32 | self.label.setGeometry(QtCore.QRect(10, 70, 381, 101)) 33 | font = QtGui.QFont() 34 | font.setFamily("钉钉进步体") 35 | font.setPointSize(9) 36 | font.setBold(True) 37 | font.setItalic(False) 38 | font.setWeight(75) 39 | font.setStyleStrategy(QtGui.QFont.PreferAntialias) 40 | self.label.setFont(font) 41 | self.label.setStyleSheet("background-color: rgba(255, 255, 255, 128);") 42 | self.label.setObjectName("label") 43 | self.label_2 = QtWidgets.QLabel(self.centralwidget) 44 | self.label_2.setGeometry(QtCore.QRect(10, 260, 381, 391)) 45 | font = QtGui.QFont() 46 | font.setFamily("钉钉进步体") 47 | font.setPointSize(9) 48 | font.setBold(True) 49 | font.setItalic(False) 50 | font.setWeight(75) 51 | font.setStyleStrategy(QtGui.QFont.PreferAntialias) 52 | self.label_2.setFont(font) 53 | self.label_2.setStyleSheet("background-color: rgba(255, 255, 255, 128);") 54 | self.label_2.setObjectName("label_2") 55 | self.checkBox_2 = QtWidgets.QCheckBox(self.centralwidget) 56 | self.checkBox_2.setGeometry(QtCore.QRect(20, 300, 191, 19)) 57 | font = QtGui.QFont() 58 | font.setFamily("微软雅黑") 59 | font.setPointSize(11) 60 | font.setBold(True) 61 | font.setWeight(75) 62 | self.checkBox_2.setFont(font) 63 | self.checkBox_2.setStyleSheet("") 64 | self.checkBox_2.setObjectName("checkBox_2") 65 | self.radioButton_3 = QtWidgets.QRadioButton(self.centralwidget) 66 | self.radioButton_3.setGeometry(QtCore.QRect(20, 390, 191, 19)) 67 | font = QtGui.QFont() 68 | font.setFamily("微软雅黑") 69 | font.setPointSize(11) 70 | font.setBold(True) 71 | font.setWeight(75) 72 | self.radioButton_3.setFont(font) 73 | self.radioButton_3.setStyleSheet("") 74 | self.radioButton_3.setObjectName("radioButton_3") 75 | self.radioButton_4 = QtWidgets.QRadioButton(self.centralwidget) 76 | self.radioButton_4.setGeometry(QtCore.QRect(20, 420, 321, 19)) 77 | font = QtGui.QFont() 78 | font.setFamily("微软雅黑") 79 | font.setPointSize(11) 80 | font.setBold(True) 81 | font.setWeight(75) 82 | self.radioButton_4.setFont(font) 83 | self.radioButton_4.setStyleSheet("") 84 | self.radioButton_4.setObjectName("radioButton_4") 85 | self.radioButton_5 = QtWidgets.QRadioButton(self.centralwidget) 86 | self.radioButton_5.setGeometry(QtCore.QRect(20, 450, 361, 19)) 87 | font = QtGui.QFont() 88 | font.setFamily("微软雅黑") 89 | font.setPointSize(11) 90 | font.setBold(True) 91 | font.setWeight(75) 92 | self.radioButton_5.setFont(font) 93 | self.radioButton_5.setStyleSheet("") 94 | self.radioButton_5.setObjectName("radioButton_5") 95 | self.pushButton = QtWidgets.QPushButton(self.centralwidget) 96 | self.pushButton.setGeometry(QtCore.QRect(260, 730, 121, 28)) 97 | self.pushButton.setObjectName("pushButton") 98 | self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) 99 | self.pushButton_2.setGeometry(QtCore.QRect(130, 730, 121, 28)) 100 | self.pushButton_2.setObjectName("pushButton_2") 101 | self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget) 102 | self.pushButton_3.setGeometry(QtCore.QRect(10, 730, 71, 28)) 103 | self.pushButton_3.setObjectName("pushButton_3") 104 | self.label_3 = QtWidgets.QLabel(self.centralwidget) 105 | self.label_3.setGeometry(QtCore.QRect(20, 350, 141, 31)) 106 | font = QtGui.QFont() 107 | font.setFamily("钉钉进步体") 108 | font.setPointSize(9) 109 | font.setBold(False) 110 | font.setItalic(False) 111 | font.setWeight(50) 112 | font.setStyleStrategy(QtGui.QFont.PreferAntialias) 113 | self.label_3.setFont(font) 114 | self.label_3.setStyleSheet("") 115 | self.label_3.setObjectName("label_3") 116 | self.label_4 = QtWidgets.QLabel(self.centralwidget) 117 | self.label_4.setGeometry(QtCore.QRect(20, 610, 221, 31)) 118 | font = QtGui.QFont() 119 | font.setFamily("钉钉进步体") 120 | font.setPointSize(9) 121 | font.setBold(False) 122 | font.setItalic(False) 123 | font.setWeight(50) 124 | font.setStyleStrategy(QtGui.QFont.PreferAntialias) 125 | self.label_4.setFont(font) 126 | self.label_4.setStyleSheet("") 127 | self.label_4.setObjectName("label_4") 128 | self.radioButton_6 = QtWidgets.QRadioButton(self.centralwidget) 129 | self.radioButton_6.setGeometry(QtCore.QRect(20, 480, 361, 19)) 130 | font = QtGui.QFont() 131 | font.setFamily("微软雅黑") 132 | font.setPointSize(11) 133 | font.setBold(True) 134 | font.setWeight(75) 135 | self.radioButton_6.setFont(font) 136 | self.radioButton_6.setStyleSheet("") 137 | self.radioButton_6.setObjectName("radioButton_6") 138 | self.label_2.raise_() 139 | self.checkBox.raise_() 140 | self.label.raise_() 141 | self.checkBox_2.raise_() 142 | self.radioButton_3.raise_() 143 | self.radioButton_4.raise_() 144 | self.radioButton_5.raise_() 145 | self.pushButton.raise_() 146 | self.pushButton_2.raise_() 147 | self.pushButton_3.raise_() 148 | self.label_3.raise_() 149 | self.label_4.raise_() 150 | self.radioButton_6.raise_() 151 | MainWindow.setCentralWidget(self.centralwidget) 152 | 153 | self.retranslateUi(MainWindow) 154 | QtCore.QMetaObject.connectSlotsByName(MainWindow) 155 | 156 | def retranslateUi(self, MainWindow): 157 | _translate = QtCore.QCoreApplication.translate 158 | MainWindow.setWindowTitle(_translate("MainWindow", "托盘程序设置")) 159 | self.checkBox.setText(_translate("MainWindow", "开机自启动")) 160 | self.label.setText(_translate("MainWindow", "

壁纸生成器

自动壁纸 - 托盘程序设置

")) 161 | self.label_2.setText(_translate("MainWindow", "


")) 162 | self.checkBox_2.setText(_translate("MainWindow", "启动后自动更换壁纸")) 163 | self.radioButton_3.setText(_translate("MainWindow", "电脑壁纸")) 164 | self.radioButton_4.setText(_translate("MainWindow", "星空壁纸(可能包含不合适的尺寸)")) 165 | self.radioButton_5.setText(_translate("MainWindow", "随机壁纸(可能包含不合适的尺寸)")) 166 | self.pushButton.setText(_translate("MainWindow", "保存并退出")) 167 | self.pushButton_2.setText(_translate("MainWindow", "不保存并退出")) 168 | self.pushButton_3.setText(_translate("MainWindow", "关于")) 169 | self.label_3.setText(_translate("MainWindow", "

刷新的壁纸类型

")) 170 | self.label_4.setText(_translate("MainWindow", "

更多功能敬请期待……

")) 171 | self.radioButton_6.setText(_translate("MainWindow", "AI 推荐(新)")) 172 | import JPG_rc 173 | -------------------------------------------------------------------------------- /old-versions/V3/插件-自动换壁纸/托盘程序设置UI.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 398 10 | 779 11 | 12 | 13 | 14 | 托盘程序设置 15 | 16 | 17 | #centralwidget{image: url(:/JPG/Bg.jpg);} 18 | 19 | 20 | 21 | 22 | 23 | 20 24 | 270 25 | 191 26 | 19 27 | 28 | 29 | 30 | 31 | 微软雅黑 32 | 11 33 | 75 34 | true 35 | 36 | 37 | 38 | 39 | 40 | 41 | 开机自启动 42 | 43 | 44 | 45 | 46 | 47 | 10 48 | 70 49 | 381 50 | 101 51 | 52 | 53 | 54 | 55 | 钉钉进步体 56 | 9 57 | 75 58 | false 59 | true 60 | PreferAntialias 61 | 62 | 63 | 64 | background-color: rgba(255, 255, 255, 128); 65 | 66 | 67 | <html><head/><body><p align="center"><span style=" font-size:20pt; font-weight:600; color:#000000;">壁纸生成器</span></p><p align="center"><span style=" font-size:20pt; font-weight:600; color:#000000;">自动壁纸 - 托盘程序设置</span></p></body></html> 68 | 69 | 70 | 71 | 72 | 73 | 10 74 | 260 75 | 381 76 | 391 77 | 78 | 79 | 80 | 81 | 钉钉进步体 82 | 9 83 | 75 84 | false 85 | true 86 | PreferAntialias 87 | 88 | 89 | 90 | background-color: rgba(255, 255, 255, 128); 91 | 92 | 93 | <html><head/><body><p align="center"><br/></p></body></html> 94 | 95 | 96 | 97 | 98 | 99 | 20 100 | 300 101 | 191 102 | 19 103 | 104 | 105 | 106 | 107 | 微软雅黑 108 | 11 109 | 75 110 | true 111 | 112 | 113 | 114 | 115 | 116 | 117 | 启动后自动更换壁纸 118 | 119 | 120 | 121 | 122 | 123 | 20 124 | 390 125 | 191 126 | 19 127 | 128 | 129 | 130 | 131 | 微软雅黑 132 | 11 133 | 75 134 | true 135 | 136 | 137 | 138 | 139 | 140 | 141 | 电脑壁纸 142 | 143 | 144 | 145 | 146 | 147 | 20 148 | 420 149 | 321 150 | 19 151 | 152 | 153 | 154 | 155 | 微软雅黑 156 | 11 157 | 75 158 | true 159 | 160 | 161 | 162 | 163 | 164 | 165 | 星空壁纸(可能包含不合适的尺寸) 166 | 167 | 168 | 169 | 170 | 171 | 20 172 | 450 173 | 361 174 | 19 175 | 176 | 177 | 178 | 179 | 微软雅黑 180 | 11 181 | 75 182 | true 183 | 184 | 185 | 186 | 187 | 188 | 189 | 随机壁纸(可能包含不合适的尺寸) 190 | 191 | 192 | 193 | 194 | 195 | 260 196 | 730 197 | 121 198 | 28 199 | 200 | 201 | 202 | 保存并退出 203 | 204 | 205 | 206 | 207 | 208 | 130 209 | 730 210 | 121 211 | 28 212 | 213 | 214 | 215 | 不保存并退出 216 | 217 | 218 | 219 | 220 | 221 | 10 222 | 730 223 | 71 224 | 28 225 | 226 | 227 | 228 | 关于 229 | 230 | 231 | 232 | 233 | 234 | 20 235 | 350 236 | 141 237 | 31 238 | 239 | 240 | 241 | 242 | 钉钉进步体 243 | 9 244 | 50 245 | false 246 | false 247 | PreferAntialias 248 | 249 | 250 | 251 | 252 | 253 | 254 | <html><head/><body><p><span style=" font-size:12pt; color:#000000;">刷新的壁纸类型</span></p></body></html> 255 | 256 | 257 | 258 | 259 | 260 | 20 261 | 610 262 | 221 263 | 31 264 | 265 | 266 | 267 | 268 | 钉钉进步体 269 | 9 270 | 50 271 | false 272 | false 273 | PreferAntialias 274 | 275 | 276 | 277 | 278 | 279 | 280 | <html><head/><body><p><span style=" font-size:12pt;">更多功能敬请期待……</span></p></body></html> 281 | 282 | 283 | 284 | 285 | 286 | 20 287 | 480 288 | 361 289 | 19 290 | 291 | 292 | 293 | 294 | 微软雅黑 295 | 11 296 | 75 297 | true 298 | 299 | 300 | 301 | 302 | 303 | 304 | AI 推荐(新) 305 | 306 | 307 | label_2 308 | checkBox 309 | label 310 | checkBox_2 311 | radioButton_3 312 | radioButton_4 313 | radioButton_5 314 | pushButton 315 | pushButton_2 316 | pushButton_3 317 | label_3 318 | label_4 319 | radioButton_6 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | -------------------------------------------------------------------------------- /output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/output.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | certifi==2024.7.4 2 | charset-normalizer==3.3.2 3 | contourpy==1.2.1 4 | cycler==0.12.1 5 | darkdetect==0.8.0 6 | easygui==0.98.3 7 | fonttools==4.53.1 8 | idna==3.7 9 | kiwisolver==1.4.5 10 | matplotlib==3.6.2 11 | numpy==1.26.4 12 | packaging==24.1 13 | pillow==10.4.0 14 | psutil==5.9.8 15 | pyinstall==0.1.4 16 | pyparsing==3.1.2 17 | PySide6==6.4.2 18 | PySide6-Addons==6.4.2 19 | PySide6-Essentials==6.4.2 20 | PySide6-Fluent-Widgets==1.6.0 21 | PySideSix-Frameless-Window==0.3.12 22 | python-dateutil==2.9.0.post0 23 | pywin32==306 24 | PyYAML==6.0.2 25 | requests==2.31.0 26 | shiboken6==6.4.2 27 | six==1.16.0 28 | urllib3==2.2.2 29 | wxPython==4.2.1 30 | -------------------------------------------------------------------------------- /v4-testUI.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1207 10 | 646 11 | 12 | 13 | 14 | MainWindow 15 | 16 | 17 | #centralwidget{image: url(:/.png/G:/Tencent Files/QQ/169368309/Doucuments/oyama-mahiro-夜空-ai~1.png);} 18 | 19 | 20 | 21 | 22 | 23 | 0 24 | 50 25 | 1091 26 | 481 27 | 28 | 29 | 30 | 31 | 32 | 33 | 1 34 | 35 | 36 | 37 | 38 | background: none; 39 | 40 | 41 | 42 | 43 | 330 44 | 70 45 | 441 46 | 91 47 | 48 | 49 | 50 | 51 | Segoe UI 52 | false 53 | 54 | 55 | 56 | 欢迎 Welcome 57 | 58 | 59 | 60 | 61 | 62 | 340 63 | 180 64 | 421 65 | 27 66 | 67 | 68 | 69 | 70 | Segoe UI 71 | false 72 | 73 | 74 | 75 | 壁纸生成器 可以帮助你快速生成各种精美壁纸。 76 | 77 | 78 | 79 | 80 | 81 | 120 82 | 290 83 | 241 84 | 32 85 | 86 | 87 | 88 | 基础壁纸分类 89 | 90 | 91 | 92 | 93 | 94 | 420 95 | 290 96 | 241 97 | 32 98 | 99 | 100 | 101 | 从 Pixiv 生成 102 | 103 | 104 | 105 | 106 | 107 | 720 108 | 290 109 | 241 110 | 32 111 | 112 | 113 | 114 | 尝试新的 SRIntelligence AI画图 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 10 123 | 10 124 | 361 125 | 33 126 | 127 | 128 | 129 | 130 | 0 131 | 0 132 | 133 | 134 | 135 | PivotItem { 136 | padding: 10px 12px; 137 | color: black; 138 | background-color: transparent; 139 | border: none; 140 | outline: none; 141 | margin: 0; 142 | } 143 | 144 | PivotItem[isSelected=true]:hover { 145 | color: rgba(0, 0, 0, 0.63); 146 | } 147 | 148 | PivotItem[isSelected=true]:pressed { 149 | color: rgba(0, 0, 0, 0.53); 150 | } 151 | 152 | PivotItem[isSelected=false]:pressed { 153 | color: rgba(0, 0, 0, 0.75); 154 | } 155 | 156 | PivotItem[hasIcon=false] { 157 | padding-left: 12px; 158 | padding-right: 12px; 159 | } 160 | 161 | PivotItem[hasIcon=true] { 162 | padding-left: 36px; 163 | padding-right: 12px; 164 | } 165 | 166 | Pivot { 167 | border: none; 168 | background-color: transparent; 169 | } 170 | 171 | #view { 172 | background-color: transparent; 173 | } 174 | 175 | SegmentedToolItem { 176 | padding: 5px 9px 6px 8px; 177 | } 178 | 179 | SegmentedWidget, SegmentedToolWidget { 180 | background-color: rgba(0, 0, 0, 0.0241); 181 | border: 1px solid rgba(0, 0, 0, 0.0578); 182 | border-radius: 6px; 183 | } 184 | 185 | SegmentedItem[isSelected=false], 186 | SegmentedToolItem[isSelected=false] { 187 | padding-top: 3px; 188 | padding-bottom: 3px; 189 | background-color: transparent; 190 | border: none; 191 | border-radius: 6px; 192 | margin: 3px 2px; 193 | } 194 | 195 | SegmentedItem[isSelected=false]:hover, 196 | SegmentedToolItem[isSelected=false]:hover { 197 | background-color: rgba(0, 0, 0, 9); 198 | } 199 | 200 | SegmentedItem[isSelected=false]:pressed, 201 | SegmentedToolItem[isSelected=false]:pressed { 202 | background-color: rgba(0, 0, 0, 6); 203 | margin: 3px 4px 3px 4px; 204 | } 205 | 206 | SegmentedItem[isSelected=true], 207 | SegmentedToolItem[isSelected=true] { 208 | padding-top: 6px; 209 | padding-bottom: 6px; 210 | background-color: rgba(255, 255, 255, 0.7); 211 | border: 1px solid rgba(0, 0, 0, 0.073); 212 | border-bottom: 1px solid rgba(0, 0, 0, 0.183); 213 | border-radius: 6px; 214 | margin: 0px; 215 | color: black; 216 | } 217 | 218 | SegmentedItem[isSelected=true]:hover, 219 | SegmentedItem[isSelected=true]:pressed, 220 | SegmentedToolItem[isSelected=true]:hover, 221 | SegmentedToolItem[isSelected=true]:pressed { 222 | color: black; 223 | } 224 | 225 | background: transparent; 226 | 227 | 228 | 229 | 230 | 231 | 420 232 | 800 233 | 160 234 | 80 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | PushButton 244 | QPushButton 245 |
qfluentwidgets
246 |
247 | 248 | SubtitleLabel 249 | QLabel 250 |
qfluentwidgets
251 |
252 | 253 | DisplayLabel 254 | QLabel 255 |
qfluentwidgets
256 |
257 | 258 | Pivot 259 | QWidget 260 |
qfluentwidgets
261 |
262 | 263 | SegmentedWidget 264 | Pivot 265 |
qfluentwidgets
266 |
267 |
268 | 269 | 270 | 271 | 272 |
273 | -------------------------------------------------------------------------------- /wallpaper.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/wallpaper.bmp -------------------------------------------------------------------------------- /受限制的(学校专用)/limit.ini: -------------------------------------------------------------------------------- 1 | [Installation configuration] 2 | Prohibit the use of types that may generate wallpapers that contain an X-level. -------------------------------------------------------------------------------- /启动.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SRInternet-Studio/Wallpaper-generator/570314a421e31c97e85e2836a5218b2bbe70c371/启动.lnk --------------------------------------------------------------------------------