Przeglądaj źródła

Merge branch 'lq0102' of ling_yun/GreatWorld into master

刘清 1 rok temu
rodzic
commit
8997a01012

+ 194
- 0
DsktopPet/LICENSE Wyświetl plik

@@ -0,0 +1,194 @@
1
+木兰宽松许可证,第2版
2
+
3
+木兰宽松许可证,第2版
4
+
5
+2020年1月 http://license.coscl.org.cn/MulanPSL2
6
+
7
+您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束:
8
+
9
+0.   定义
10
+
11
+“软件” 是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。
12
+
13
+“贡献” 是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。
14
+
15
+“贡献者” 是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。
16
+
17
+“法人实体” 是指提交贡献的机构及其“关联实体”。
18
+
19
+“关联实体” 是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是
20
+指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。
21
+
22
+1.   授予版权许可
23
+
24
+每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可
25
+以复制、使用、修改、分发其“贡献”,不论修改与否。
26
+
27
+2.   授予专利许可
28
+
29
+每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定
30
+撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡
31
+献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软
32
+件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“
33
+关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或
34
+其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权
35
+行动之日终止。
36
+
37
+3.   无商标许可
38
+
39
+“本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定
40
+的声明义务而必须使用除外。
41
+
42
+4.   分发限制
43
+
44
+您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“
45
+本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。
46
+
47
+5.   免责声明与责任限制
48
+
49
+“软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对
50
+任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于
51
+何种法律理论,即使其曾被建议有此种损失的可能性。
52
+
53
+6.   语言
54
+
55
+“本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文
56
+版为准。
57
+
58
+条款结束
59
+
60
+如何将木兰宽松许可证,第2版,应用到您的软件
61
+
62
+如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步:
63
+
64
+1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字;
65
+
66
+2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中;
67
+
68
+3, 请将如下声明文本放入每个源文件的头部注释中。
69
+
70
+Copyright (c) [Year] [name of copyright holder]
71
+[Software Name] is licensed under Mulan PSL v2.
72
+You can use this software according to the terms and conditions of the Mulan
73
+PSL v2.
74
+You may obtain a copy of Mulan PSL v2 at:
75
+         http://license.coscl.org.cn/MulanPSL2
76
+THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
77
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
78
+NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
79
+See the Mulan PSL v2 for more details.
80
+
81
+Mulan Permissive Software License,Version 2
82
+
83
+Mulan Permissive Software License,Version 2 (Mulan PSL v2)
84
+
85
+January 2020 http://license.coscl.org.cn/MulanPSL2
86
+
87
+Your reproduction, use, modification and distribution of the Software shall
88
+be subject to Mulan PSL v2 (this License) with the following terms and
89
+conditions:
90
+
91
+0. Definition
92
+
93
+Software means the program and related documents which are licensed under
94
+this License and comprise all Contribution(s).
95
+
96
+Contribution means the copyrightable work licensed by a particular
97
+Contributor under this License.
98
+
99
+Contributor means the Individual or Legal Entity who licenses its
100
+copyrightable work under this License.
101
+
102
+Legal Entity means the entity making a Contribution and all its
103
+Affiliates.
104
+
105
+Affiliates means entities that control, are controlled by, or are under
106
+common control with the acting entity under this License, ‘control’ means
107
+direct or indirect ownership of at least fifty percent (50%) of the voting
108
+power, capital or other securities of controlled or commonly controlled
109
+entity.
110
+
111
+1. Grant of Copyright License
112
+
113
+Subject to the terms and conditions of this License, each Contributor hereby
114
+grants to you a perpetual, worldwide, royalty-free, non-exclusive,
115
+irrevocable copyright license to reproduce, use, modify, or distribute its
116
+Contribution, with modification or not.
117
+
118
+2. Grant of Patent License
119
+
120
+Subject to the terms and conditions of this License, each Contributor hereby
121
+grants to you a perpetual, worldwide, royalty-free, non-exclusive,
122
+irrevocable (except for revocation under this Section) patent license to
123
+make, have made, use, offer for sale, sell, import or otherwise transfer its
124
+Contribution, where such patent license is only limited to the patent claims
125
+owned or controlled by such Contributor now or in future which will be
126
+necessarily infringed by its Contribution alone, or by combination of the
127
+Contribution with the Software to which the Contribution was contributed.
128
+The patent license shall not apply to any modification of the Contribution,
129
+and any other combination which includes the Contribution. If you or your
130
+Affiliates directly or indirectly institute patent litigation (including a
131
+cross claim or counterclaim in a litigation) or other patent enforcement
132
+activities against any individual or entity by alleging that the Software or
133
+any Contribution in it infringes patents, then any patent license granted to
134
+you under this License for the Software shall terminate as of the date such
135
+litigation or activity is filed or taken.
136
+
137
+3. No Trademark License
138
+
139
+No trademark license is granted to use the trade names, trademarks, service
140
+marks, or product names of Contributor, except as required to fulfill notice
141
+requirements in section 4.
142
+
143
+4. Distribution Restriction
144
+
145
+You may distribute the Software in any medium with or without modification,
146
+whether in source or executable forms, provided that you provide recipients
147
+with a copy of this License and retain copyright, patent, trademark and
148
+disclaimer statements in the Software.
149
+
150
+5. Disclaimer of Warranty and Limitation of Liability
151
+
152
+THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY
153
+KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR
154
+COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT
155
+LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING
156
+FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO
157
+MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF
158
+THE POSSIBILITY OF SUCH DAMAGES.
159
+
160
+6. Language
161
+
162
+THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION
163
+AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF
164
+DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION
165
+SHALL PREVAIL.
166
+
167
+END OF THE TERMS AND CONDITIONS
168
+
169
+How to Apply the Mulan Permissive Software License,Version 2
170
+(Mulan PSL v2) to Your Software
171
+
172
+To apply the Mulan PSL v2 to your work, for easy identification by
173
+recipients, you are suggested to complete following three steps:
174
+
175
+i. Fill in the blanks in following statement, including insert your software
176
+name, the year of the first publication of your software, and your name
177
+identified as the copyright owner;
178
+
179
+ii. Create a file named "LICENSE" which contains the whole context of this
180
+License in the first directory of your software package;
181
+
182
+iii. Attach the statement to the appropriate annotated syntax at the
183
+beginning of each source file.
184
+
185
+Copyright (c) [Year] [name of copyright holder]
186
+[Software Name] is licensed under Mulan PSL v2.
187
+You can use this software according to the terms and conditions of the Mulan
188
+PSL v2.
189
+You may obtain a copy of Mulan PSL v2 at:
190
+         http://license.coscl.org.cn/MulanPSL2
191
+THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
192
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
193
+NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
194
+See the Mulan PSL v2 for more details.

+ 84
- 0
DsktopPet/demo.py Wyświetl plik

@@ -0,0 +1,84 @@
1
+from PySide6.QtCore import Qt, QPoint
2
+from PySide6.QtGui import QMovie
3
+from PySide6.QtWidgets import QApplication, QWidget, QLabel, QMenu, QVBoxLayout
4
+
5
+
6
+class MainWindow(QWidget):
7
+    def __init__(self):
8
+        super().__init__()
9
+        self.setWindowTitle("派大星")
10
+        self.setGeometry(100, 100, 300, 300)
11
+        self.setAttribute(Qt.WA_TranslucentBackground)
12
+        self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
13
+        self.setStyleSheet("background-color: transparent;")  # 设置背景颜色为透明
14
+        self.layout = QVBoxLayout(self)  # 创建一个垂直布局
15
+        self.setLayout(self.layout)  # 设置窗口的布局
16
+
17
+    def center_on_screen(self):
18
+        screen_geometry = QApplication.primaryScreen().geometry()
19
+        window_geometry = self.frameGeometry()
20
+        center_point = screen_geometry.center()
21
+        window_geometry.moveCenter(center_point)
22
+        self.move(window_geometry.topLeft())
23
+        self.gif(0)  # 默认显示第一个GIF
24
+
25
+    def mousePressEvent(self, event):
26
+        if event.button() == Qt.LeftButton:
27
+            self.drag_position = event.globalPos() - self.frameGeometry().topLeft()
28
+        elif event.button() == Qt.RightButton:
29
+            self.showContextMenu(event.globalPos())
30
+
31
+    def mouseMoveEvent(self, event):
32
+        if event.buttons() == Qt.LeftButton and self.drag_position:
33
+            self.move(event.globalPos() - self.drag_position)
34
+
35
+    def showContextMenu(self, pos):
36
+        menu = QMenu(self)
37
+        self.setMenuStyle(menu)
38
+        # 菜单项添加数据以便识别
39
+        menu.addAction("表演", lambda: self.gif(0))
40
+        menu.addAction("跌倒", lambda: self.gif(1))
41
+        menu.addAction("玩耍", lambda: self.gif(2))
42
+        menu.addAction("元旦节", lambda: self.gif(3))
43
+        menu.addAction("圣诞节", lambda: self.gif(4))
44
+        menu.addAction("退出", self.close)
45
+        menu.exec(pos)
46
+
47
+    def setMenuStyle(self, menu):
48
+        menu.setStyleSheet("""
49
+            QMenu {background-color: gray;}
50
+            QMenu::item:hover {color: green;}
51
+        """)
52
+
53
+    def gif(self, index):
54
+        # 移除之前所有的GIF
55
+        if self.layout.count():
56
+            for i in range(self.layout.count()):
57
+                widget = self.layout.itemAt(i).widget()
58
+                if widget:
59
+                    widget.deleteLater()
60
+        label = QLabel(self)
61
+        label.move(150, 150)
62
+        if index == 0:
63
+            movie = QMovie("./DsktopPet/img/派大星.gif")
64
+        elif index == 1:
65
+            movie = QMovie("./DsktopPet/img/派大星1.gif")
66
+        elif index == 2:
67
+            movie = QMovie("./DsktopPet/img/派大星2.gif")  # 假设你有这个GIF文件
68
+
69
+        elif index == 3:
70
+            movie = QMovie("./DsktopPet/img/元旦节.gif")
71
+        else:
72
+            movie = QMovie("./DsktopPet/img/圣诞节.gif")
73
+
74
+        label.setMovie(movie)
75
+        movie.start()
76
+        self.layout.addWidget(label)  # 将新的QLabel添加到布局中
77
+
78
+
79
+if __name__ == "__main__":
80
+    app = QApplication([])
81
+    window = MainWindow()
82
+    window.center_on_screen()  # 将窗口居中
83
+    window.show()
84
+    app.exec()

+ 0
- 0
DsktopPet/img/.keep Wyświetl plik


BIN
DsktopPet/img/123123123frame.jpg Wyświetl plik


BIN
DsktopPet/img/元旦节.gif Wyświetl plik


BIN
DsktopPet/img/圣诞节.gif Wyświetl plik


BIN
DsktopPet/img/派大星.gif Wyświetl plik


BIN
DsktopPet/img/派大星1.gif Wyświetl plik


BIN
DsktopPet/img/派大星2.gif Wyświetl plik