├── .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 |
84 |
85 |
86 | PrimaryPushButton
87 | PushButton
88 |
89 |
90 |
91 | SwitchButton
92 | QWidget
93 |
94 |
95 |
96 | DatePicker
97 | QPushButton
98 |
99 |
100 |
101 | ZhDatePicker
102 | DatePicker
103 |
104 |
105 |
106 | TitleLabel
107 | QLabel
108 |
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 |
115 |
116 |
117 | PrimaryPushButton
118 | PushButton
119 |
120 |
121 |
122 | CardWidget
123 | QFrame
124 |
125 | 1
126 |
127 |
128 | SimpleCardWidget
129 | CardWidget
130 |
131 | 1
132 |
133 |
134 | BodyLabel
135 | QLabel
136 |
137 |
138 |
139 | TitleLabel
140 | QLabel
141 |
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 |
4 |
5 |
6 |
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 |
123 |
124 |
125 | PushButton
126 | QPushButton
127 |
128 |
129 |
130 | PixmapLabel
131 | QLabel
132 |
133 |
134 |
135 | BodyLabel
136 | QLabel
137 |
138 |
139 |
140 | StrongBodyLabel
141 | QLabel
142 |
143 |
144 |
145 | SubtitleLabel
146 | QLabel
147 |
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 |
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 |
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 |
246 |
247 |
248 | SubtitleLabel
249 | QLabel
250 |
251 |
252 |
253 | DisplayLabel
254 | QLabel
255 |
256 |
257 |
258 | Pivot
259 | QWidget
260 |
261 |
262 |
263 | SegmentedWidget
264 | Pivot
265 |
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
--------------------------------------------------------------------------------