frontengine-dev 0.0.64__py3-none-any.whl → 0.0.66__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- frontengine/show/particle/__init__.py +0 -0
- frontengine/show/particle/paint_particle.py +45 -0
- frontengine/show/particle/particle_scene.py +65 -0
- frontengine/show/particle/particle_utils.py +75 -0
- frontengine/ui/page/video/video_setting_ui.py +0 -1
- frontengine/utils/critical_exit/critical_exit.py +3 -1
- {frontengine_dev-0.0.64.dist-info → frontengine_dev-0.0.66.dist-info}/METADATA +6 -1
- {frontengine_dev-0.0.64.dist-info → frontengine_dev-0.0.66.dist-info}/RECORD +11 -7
- {frontengine_dev-0.0.64.dist-info → frontengine_dev-0.0.66.dist-info}/LICENSE +0 -0
- {frontengine_dev-0.0.64.dist-info → frontengine_dev-0.0.66.dist-info}/WHEEL +0 -0
- {frontengine_dev-0.0.64.dist-info → frontengine_dev-0.0.66.dist-info}/top_level.txt +0 -0
File without changes
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import sys
|
2
|
+
|
3
|
+
from PySide6.QtCore import QSize
|
4
|
+
from PySide6.QtGui import QPixmap, Qt
|
5
|
+
from PySide6.QtWidgets import QWidget, QApplication, QMainWindow, QGridLayout
|
6
|
+
from qt_material import QtStyleTools
|
7
|
+
|
8
|
+
from frontengine.show.particle.particle_scene import ParticleGraphicScene
|
9
|
+
from frontengine.show.scene.extend_graphic_view import ExtendGraphicView
|
10
|
+
|
11
|
+
|
12
|
+
class ParticleWidget(QWidget):
|
13
|
+
|
14
|
+
def __init__(self, pixmap: QPixmap, particle_size: int, particle_direction: str, particle_count: int = 50,
|
15
|
+
screen_height: int = 1080, screen_width: int = 1920, opacity: float = 0.2,
|
16
|
+
particle_speed: int = 1):
|
17
|
+
super().__init__()
|
18
|
+
if particle_size:
|
19
|
+
self.pixmap = pixmap.scaled(QSize(particle_size, particle_size), Qt.AspectRatioMode.KeepAspectRatio)
|
20
|
+
else:
|
21
|
+
self.pixmap = pixmap.scaled(QSize(pixmap.width(), pixmap.height()), Qt.AspectRatioMode.KeepAspectRatio)
|
22
|
+
self.particle_view = ExtendGraphicView()
|
23
|
+
self.particle_scene = ParticleGraphicScene(
|
24
|
+
self.pixmap, particle_direction, particle_count,
|
25
|
+
screen_height, screen_width, opacity, particle_speed)
|
26
|
+
self.particle_view.setScene(self.particle_scene)
|
27
|
+
self.grid_layout = QGridLayout()
|
28
|
+
self.grid_layout.addWidget(self.particle_view, 0, 0, -1, -1)
|
29
|
+
self.setLayout(self.grid_layout)
|
30
|
+
|
31
|
+
|
32
|
+
class TestUI(QMainWindow, QtStyleTools):
|
33
|
+
|
34
|
+
def __init__(self):
|
35
|
+
super().__init__()
|
36
|
+
self.pixmap = QPixmap("pipi.png")
|
37
|
+
self.main_widget = ParticleWidget(self.pixmap, 64, "random_add", particle_count=500)
|
38
|
+
self.setCentralWidget(self.main_widget)
|
39
|
+
self.showMaximized()
|
40
|
+
|
41
|
+
|
42
|
+
if __name__ == "__main__":
|
43
|
+
main_app = QApplication(sys.argv)
|
44
|
+
window = TestUI()
|
45
|
+
sys.exit(main_app.exec())
|
@@ -0,0 +1,65 @@
|
|
1
|
+
from typing import Callable
|
2
|
+
|
3
|
+
from PySide6.QtCore import QTimer, QPoint, QRect
|
4
|
+
from PySide6.QtGui import QPixmap
|
5
|
+
from PySide6.QtWidgets import QGraphicsScene, QWidget
|
6
|
+
|
7
|
+
from frontengine.show.particle.particle_utils import particle_down, particle_up, particle_left, particle_right, \
|
8
|
+
particle_left_down, particle_left_up, particle_right_down, particle_right_up, particle_random_minus, Particle, \
|
9
|
+
particle_random_add, particle_random
|
10
|
+
|
11
|
+
|
12
|
+
class ParticleGraphicScene(QGraphicsScene):
|
13
|
+
|
14
|
+
def __init__(self, particle_pixmap: QPixmap, particle_direction: str,
|
15
|
+
particle_count: int = 500,
|
16
|
+
screen_height: int = 1920, screen_width: int = 1080, opacity: float = 0.2,
|
17
|
+
particle_speed: int = 1):
|
18
|
+
super().__init__()
|
19
|
+
self.particle_pixmap: QPixmap = particle_pixmap
|
20
|
+
self.particle_direction: str = particle_direction
|
21
|
+
self.particle_count: int = particle_count
|
22
|
+
self.opacity: float = opacity
|
23
|
+
self.particle_dict: dict = {}
|
24
|
+
self.particle_speed: int = particle_speed
|
25
|
+
self.screen_height: int = screen_height
|
26
|
+
self.screen_width: int = screen_width
|
27
|
+
self.create_particle()
|
28
|
+
self.update_function: Callable = {
|
29
|
+
"down": particle_down,
|
30
|
+
"up": particle_up,
|
31
|
+
"left": particle_left,
|
32
|
+
"right": particle_right,
|
33
|
+
"left_down": particle_left_down,
|
34
|
+
"left_up": particle_left_up,
|
35
|
+
"right_down": particle_right_down,
|
36
|
+
"right_up": particle_right_up,
|
37
|
+
"random_minus": particle_random_minus,
|
38
|
+
"random_add": particle_random_add,
|
39
|
+
"random": particle_random
|
40
|
+
}.get(self.particle_direction)
|
41
|
+
self.setSceneRect(QRect(0, 0, screen_width, screen_height))
|
42
|
+
self.update_timer: QTimer = QTimer()
|
43
|
+
self.update_timer.setInterval(10)
|
44
|
+
self.update_timer.timeout.connect(self.update_particle)
|
45
|
+
self.update_timer.start()
|
46
|
+
|
47
|
+
def create_particle(self):
|
48
|
+
self.particle_dict = {}
|
49
|
+
for count in range(self.particle_count):
|
50
|
+
self.particle_dict.update({
|
51
|
+
f"particle_{count}": Particle(self.screen_height, self.screen_width, self.particle_pixmap)
|
52
|
+
})
|
53
|
+
|
54
|
+
def update_particle(self):
|
55
|
+
self.clear()
|
56
|
+
self.update_function(self.particle_dict, self.particle_speed)
|
57
|
+
for particle_key, particle in self.particle_dict.items():
|
58
|
+
pixmap_item = self.addPixmap(particle.pixmap)
|
59
|
+
pixmap_item.setOpacity(self.opacity)
|
60
|
+
pixmap_item.setPos(particle.x, particle.y)
|
61
|
+
particle.pixmap_item = pixmap_item
|
62
|
+
if not self.sceneRect().contains(QPoint(particle.x, particle.y)):
|
63
|
+
self.removeItem(particle.pixmap_item)
|
64
|
+
if len(self.items()) == 0:
|
65
|
+
self.create_particle()
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import random
|
2
|
+
from typing import Dict, Callable
|
3
|
+
|
4
|
+
from PySide6.QtGui import QPixmap
|
5
|
+
from PySide6.QtWidgets import QGraphicsPixmapItem
|
6
|
+
|
7
|
+
|
8
|
+
class Particle(object):
|
9
|
+
|
10
|
+
def __init__(self, height: int, width: int, pixmap: QPixmap):
|
11
|
+
self.pixmap: QPixmap = pixmap
|
12
|
+
self.x: int = random.randint(0, width)
|
13
|
+
self.y: int = random.randint(0, height)
|
14
|
+
self.height = self.pixmap.height()
|
15
|
+
self.width = self.pixmap.width()
|
16
|
+
self.pixmap_item: [QGraphicsPixmapItem, None] = None
|
17
|
+
|
18
|
+
|
19
|
+
def particle_down(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
|
20
|
+
for particle in particle_dict.values():
|
21
|
+
particle.y += random.randint(0, particle_speed)
|
22
|
+
|
23
|
+
|
24
|
+
def particle_up(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
|
25
|
+
for particle in particle_dict.values():
|
26
|
+
particle.y -= random.randint(0, particle_speed)
|
27
|
+
|
28
|
+
|
29
|
+
def particle_left(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
|
30
|
+
for particle in particle_dict.values():
|
31
|
+
particle.x -= random.randint(0, particle_speed)
|
32
|
+
|
33
|
+
|
34
|
+
def particle_right(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
|
35
|
+
for particle in particle_dict.values():
|
36
|
+
particle.x += random.randint(0, particle_speed)
|
37
|
+
|
38
|
+
|
39
|
+
def particle_left_down(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
|
40
|
+
particle_left(particle_dict, particle_speed)
|
41
|
+
particle_down(particle_dict, particle_speed)
|
42
|
+
|
43
|
+
|
44
|
+
def particle_left_up(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
|
45
|
+
particle_left(particle_dict, particle_speed)
|
46
|
+
particle_up(particle_dict, particle_speed)
|
47
|
+
|
48
|
+
|
49
|
+
def particle_right_down(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
|
50
|
+
particle_right(particle_dict, particle_speed)
|
51
|
+
particle_down(particle_dict, particle_speed)
|
52
|
+
|
53
|
+
|
54
|
+
def particle_right_up(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
|
55
|
+
particle_right(particle_dict, particle_speed)
|
56
|
+
particle_up(particle_dict, particle_speed)
|
57
|
+
|
58
|
+
|
59
|
+
def particle_random_minus(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
|
60
|
+
for particle in particle_dict.values():
|
61
|
+
particle.y += random.randint(0, particle_speed)
|
62
|
+
particle.x -= random.randint(0, particle_speed)
|
63
|
+
|
64
|
+
|
65
|
+
def particle_random_add(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
|
66
|
+
for particle in particle_dict.values():
|
67
|
+
particle.y -= random.randint(0, particle_speed)
|
68
|
+
particle.x += random.randint(0, particle_speed)
|
69
|
+
|
70
|
+
|
71
|
+
def particle_random(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
|
72
|
+
function: Callable = random.choice(
|
73
|
+
[particle_down, particle_up, particle_left, particle_right, particle_right_up, particle_left_down,
|
74
|
+
particle_left_up, particle_right_down, particle_random_add, particle_random_minus])
|
75
|
+
function(particle_dict, particle_speed)
|
@@ -2,6 +2,8 @@ import _thread
|
|
2
2
|
import sys
|
3
3
|
from threading import Thread
|
4
4
|
|
5
|
+
from PySide6.QtWidgets import QApplication
|
6
|
+
|
5
7
|
from frontengine.utils.critical_exit.check_key_is_press import check_key_is_press
|
6
8
|
from frontengine.utils.critical_exit.win32_vk import keyboard_keys_table
|
7
9
|
|
@@ -37,7 +39,7 @@ class CriticalExit(Thread):
|
|
37
39
|
try:
|
38
40
|
while True:
|
39
41
|
if check_key_is_press(self._exit_check_key):
|
40
|
-
|
42
|
+
QApplication.exit(0)
|
41
43
|
except Exception as error:
|
42
44
|
print(repr(error), file=sys.stderr)
|
43
45
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: frontengine_dev
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.66
|
4
4
|
Summary: FrontEngine is BingGPT that can use-define front end or only use like screen saver
|
5
5
|
Author-email: JE-Chen <jechenmailman@gmail.com>
|
6
6
|
License: MIT
|
@@ -25,6 +25,10 @@ Requires-Dist: qt-material
|
|
25
25
|
|
26
26
|
[FrontEngine Doc Click Here!](https://frontengine.readthedocs.io/en/latest/)
|
27
27
|
|
28
|
+
## Support this project on steam
|
29
|
+
|
30
|
+
[SteamStoreLink](https://store.steampowered.com/app/2793470/FrontEngine/)
|
31
|
+
|
28
32
|
## Contents
|
29
33
|
|
30
34
|
> Project kanban https://github.com/orgs/Integration-Automation/projects/2/views/1
|
@@ -68,6 +72,7 @@ Requires-Dist: qt-material
|
|
68
72
|
- [Youtube](https://youtu.be/fewogcb3b8Y)
|
69
73
|
|
70
74
|
|
75
|
+
|
71
76
|
## Download
|
72
77
|
|
73
78
|
---
|
@@ -6,6 +6,10 @@ frontengine/show/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
|
|
6
6
|
frontengine/show/image/paint_image.py,sha256=BtKyFJP7UdOLMBsCoQ1fnT8ft-cUxDaufFzURgbwpJU,2467
|
7
7
|
frontengine/show/load/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
8
|
frontengine/show/load/load_someone_make_ui.py,sha256=yjMrkA76VEYkKXygwKmoKaADymjjDlebI-7PNa6DrEo,1010
|
9
|
+
frontengine/show/particle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
|
+
frontengine/show/particle/paint_particle.py,sha256=CkFlbYONlH2yBlNnh2Vhy66WYaTQV3MlDkrXavKIgec,1829
|
11
|
+
frontengine/show/particle/particle_scene.py,sha256=8TbQL60q_qxk5tv0fZp8leR7mkz-JT7aipP7-i-qoA8,2906
|
12
|
+
frontengine/show/particle/particle_utils.py,sha256=AUHIHZpvvIJWF_iU6Urd9JXSeZdlwGJlTSWT5ywyg94,2999
|
9
13
|
frontengine/show/scene/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
14
|
frontengine/show/scene/extend_graphic_scene.py,sha256=7UiEr_kRbhheGOj_rYeq3fAUtRacq2WH8fQZV0Q-tA4,148
|
11
15
|
frontengine/show/scene/extend_graphic_view.py,sha256=b5yAA_PqMTCnn7-63Q8Fhm9HBiWfjo48_1xjh2nP67I,1999
|
@@ -55,7 +59,7 @@ frontengine/ui/page/sound_player/sound_player_setting_ui.py,sha256=OFRxUyUXVj3-P
|
|
55
59
|
frontengine/ui/page/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
56
60
|
frontengine/ui/page/text/text_setting_ui.py,sha256=nSrXkezs7X9-7Kd16raaz3WZJFwyL4cuz3j74VQIS9U,6317
|
57
61
|
frontengine/ui/page/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
|
-
frontengine/ui/page/video/video_setting_ui.py,sha256=
|
62
|
+
frontengine/ui/page/video/video_setting_ui.py,sha256=crFydSKtBLDkdXyRENQupbXBX68OCBX_D97Fn3zowmk,8078
|
59
63
|
frontengine/ui/page/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
60
64
|
frontengine/ui/page/web/web_setting_ui.py,sha256=FgTCn68WTeFp197mhvilWKK25m0xF0gSZ9b7hfG2ELQ,5596
|
61
65
|
frontengine/user_setting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -66,7 +70,7 @@ frontengine/utils/browser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
66
70
|
frontengine/utils/browser/browser.py,sha256=BQBjJpbTubqruUvg75O21SUhawFdVhDmuYxtd_FN1Gs,85
|
67
71
|
frontengine/utils/critical_exit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
72
|
frontengine/utils/critical_exit/check_key_is_press.py,sha256=vqx_3-hWRT2_pjZ4NF_zlpYvzpXVKiBXePXWwjvJwO4,311
|
69
|
-
frontengine/utils/critical_exit/critical_exit.py,sha256=
|
73
|
+
frontengine/utils/critical_exit/critical_exit.py,sha256=kCAI662jg3bdVGHu9frENRPgTO0VpGcOzc28D6fe-Ps,1560
|
70
74
|
frontengine/utils/critical_exit/win32_vk.py,sha256=kczIp9le1TfN0rCWy_2-ecDRtCeRLSW0pEyOeCIcpCc,11132
|
71
75
|
frontengine/utils/exception/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
72
76
|
frontengine/utils/exception/exception_tags.py,sha256=V4R_RlNYX_zgAKU9I7NLimYic--oF-2qHDHCwpVYHcc,325
|
@@ -93,8 +97,8 @@ frontengine/utils/multi_language/simplified_chinese.py,sha256=wDnne4PiVA3eJ9Q4sx
|
|
93
97
|
frontengine/utils/multi_language/traditional_chinese.py,sha256=SSE338u2Y_-N0fumIVeBBRhnvjizT92tQdYcOJiMSFM,6083
|
94
98
|
frontengine/utils/redirect_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
95
99
|
frontengine/utils/redirect_manager/redirect_manager_class.py,sha256=zGJeVpjRU12MCnhVAdksAIhK_IhddI4cNKVb7DMgOZA,1888
|
96
|
-
frontengine_dev-0.0.
|
97
|
-
frontengine_dev-0.0.
|
98
|
-
frontengine_dev-0.0.
|
99
|
-
frontengine_dev-0.0.
|
100
|
-
frontengine_dev-0.0.
|
100
|
+
frontengine_dev-0.0.66.dist-info/LICENSE,sha256=b3VlPBXnrDylKGffOEOLWMgOX-yfd65XC7PA1_sox2o,1085
|
101
|
+
frontengine_dev-0.0.66.dist-info/METADATA,sha256=Rv31k5QgebDTl5qw9MdcyVLCziH8Qm98L1eL2DnFtmg,2170
|
102
|
+
frontengine_dev-0.0.66.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
103
|
+
frontengine_dev-0.0.66.dist-info/top_level.txt,sha256=btCybScN_ubeQ8phsSDBB0T-HyHjqt7b-WPy61uTox0,12
|
104
|
+
frontengine_dev-0.0.66.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|