Uranus-IDE 1.0.0a1__tar.gz
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.
- uranus_ide-1.0.0a1/LICENSE +36 -0
- uranus_ide-1.0.0a1/MANIFEST.in +10 -0
- uranus_ide-1.0.0a1/PKG-INFO +44 -0
- uranus_ide-1.0.0a1/README.md +28 -0
- uranus_ide-1.0.0a1/README.txt +37 -0
- uranus_ide-1.0.0a1/docs/index.md +54 -0
- uranus_ide-1.0.0a1/pyproject.toml +35 -0
- uranus_ide-1.0.0a1/requirements.txt +10 -0
- uranus_ide-1.0.0a1/setup.cfg +43 -0
- uranus_ide-1.0.0a1/src/Uranus/AboutWindow.py +81 -0
- uranus_ide-1.0.0a1/src/Uranus/Cell.py +571 -0
- uranus_ide-1.0.0a1/src/Uranus/CodeEditor.py +459 -0
- uranus_ide-1.0.0a1/src/Uranus/CodeHighlight.py +354 -0
- uranus_ide-1.0.0a1/src/Uranus/DataOutputEditor.py +112 -0
- uranus_ide-1.0.0a1/src/Uranus/DocumentEditor.py +742 -0
- uranus_ide-1.0.0a1/src/Uranus/ImageOutput.py +69 -0
- uranus_ide-1.0.0a1/src/Uranus/MainWindow.py +484 -0
- uranus_ide-1.0.0a1/src/Uranus/OutputEditor.py +114 -0
- uranus_ide-1.0.0a1/src/Uranus/PythonTemplate.py +160 -0
- uranus_ide-1.0.0a1/src/Uranus/SettingWindow.py +299 -0
- uranus_ide-1.0.0a1/src/Uranus/WorkWindow.py +1039 -0
- uranus_ide-1.0.0a1/src/Uranus/__init__.py +5 -0
- uranus_ide-1.0.0a1/src/Uranus/__main__.py +6 -0
- uranus_ide-1.0.0a1/src/Uranus/core.py +76 -0
- uranus_ide-1.0.0a1/src/Uranus/font/FiraCode-VariableFont_wght.ttf +0 -0
- uranus_ide-1.0.0a1/src/Uranus/font/JetBrainsMono-Light.ttf +0 -0
- uranus_ide-1.0.0a1/src/Uranus/font/JetBrainsMono-Medium.ttf +0 -0
- uranus_ide-1.0.0a1/src/Uranus/font/ShareTechMono-Regular.ttf +0 -0
- uranus_ide-1.0.0a1/src/Uranus/font/SpaceMono-Regular.ttf +0 -0
- uranus_ide-1.0.0a1/src/Uranus/font/Technology.ttf +0 -0
- uranus_ide-1.0.0a1/src/Uranus/font/UbuntuMono-Regular.ttf +0 -0
- uranus_ide-1.0.0a1/src/Uranus/font/__init__.py +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/File_Tree.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/Uranus.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/a sleek futuristic2 i.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/add_file.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/add_folder.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/bold.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/center.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/color.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/create_project.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/csv.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/db.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/delete_file.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/delete_folder.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/delete_page.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/doc_Type.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/doc_delete.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/down.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/file_unknown.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/folder.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/font.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/image.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/insert_image.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/ipynb_icon.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/ipynb_icon1.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/italic.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/json.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/justify.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/left.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/load_file.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/ltr.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/memory.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/move_down.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/move_up.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/prj_folder.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/python1_icon.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/python_icon.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/resize.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/right.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/rtl.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/run_all.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/run_cell.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/save.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/table.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/text_color.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/text_direction.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/text_direction1.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/txt.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/underline.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/undo_cell.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/image/up.png +0 -0
- uranus_ide-1.0.0a1/src/Uranus/utils.py +437 -0
- uranus_ide-1.0.0a1/src/Uranus_IDE.egg-info/PKG-INFO +44 -0
- uranus_ide-1.0.0a1/src/Uranus_IDE.egg-info/SOURCES.txt +94 -0
- uranus_ide-1.0.0a1/src/Uranus_IDE.egg-info/dependency_links.txt +1 -0
- uranus_ide-1.0.0a1/src/Uranus_IDE.egg-info/entry_points.txt +2 -0
- uranus_ide-1.0.0a1/src/Uranus_IDE.egg-info/top_level.txt +1 -0
- uranus_ide-1.0.0a1/tests/test_core.py +1 -0
- uranus_ide-1.0.0a1/tests/test_utils.py +1 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
📄 LICENSE — Uranus IDE
|
|
2
|
+
Custom License by Atila Ghashghaie
|
|
3
|
+
Copyright © 2025 Atila Ghashghaie
|
|
4
|
+
|
|
5
|
+
📘 Permissions
|
|
6
|
+
You are permitted to:
|
|
7
|
+
- ✅ Use this software for personal, educational, research, and organizational purposes
|
|
8
|
+
- ✅ View, run, and modify the source code for non-commercial use
|
|
9
|
+
- ✅ Integrate the software into internal systems or workflows
|
|
10
|
+
|
|
11
|
+
🚫 Restrictions
|
|
12
|
+
You are not permitted to:
|
|
13
|
+
- ❌ Use this software or any derivative work for commercial purposes, resale, or inclusion in paid products without explicit written permission from the author
|
|
14
|
+
- ❌ Change, obscure, or remove the original project name “Uranus” in any form
|
|
15
|
+
- ❌ Remove or alter the author’s name “Atila Ghashghaie” from any file, documentation, or interface
|
|
16
|
+
- ❌ Redistribute modified or unmodified versions publicly without written consent from the author
|
|
17
|
+
- ❌ Claim ownership or authorship of this software or any part of it
|
|
18
|
+
|
|
19
|
+
📌 Attribution
|
|
20
|
+
All uses must clearly and visibly credit the original author:
|
|
21
|
+
Uranus IDE by Atila Ghashghaie
|
|
22
|
+
|
|
23
|
+
This credit must appear in documentation, user interfaces, and any derivative work.
|
|
24
|
+
|
|
25
|
+
⚠️ Disclaimer
|
|
26
|
+
This software is provided “AS IS”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement.
|
|
27
|
+
The author shall not be held liable for any damages or losses arising from the use of this software.
|
|
28
|
+
|
|
29
|
+
🌐 License Summary
|
|
30
|
+
This is a custom license designed to protect the author's intellectual and creative rights while allowing free non-commercial use.
|
|
31
|
+
Commercial use, redistribution, or rebranding is strictly prohibited without written permission.
|
|
32
|
+
To request commercial licensing or redistribution rights, contact:
|
|
33
|
+
📧 atila.gh@gmail.com
|
|
34
|
+
📞 +98 912 319 4008
|
|
35
|
+
WWW.puyeshmashin.ir
|
|
36
|
+
https://github.com/atila1358
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
include README.md
|
|
2
|
+
include LICENSE
|
|
3
|
+
include requirements.txt
|
|
4
|
+
include pyproject.toml
|
|
5
|
+
include setup.cfg
|
|
6
|
+
|
|
7
|
+
recursive-include docs *.md
|
|
8
|
+
recursive-include src/Uranus/image *.png *.jpg *.svg
|
|
9
|
+
recursive-include src/Uranus/font *.ttf *.otf
|
|
10
|
+
recursive-include src/Uranus *.json
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: Uranus-IDE
|
|
3
|
+
Version: 1.0.0a1
|
|
4
|
+
Summary: A lightweight, extensible Python IDE inspired by Jupyter, built with PyQt5.
|
|
5
|
+
Home-page: https://github.com/atila1358/uranus
|
|
6
|
+
Author: Atila Ghashghaie
|
|
7
|
+
Author-email: Atila Ghashghaie <atila.gh@gmail.com>
|
|
8
|
+
License-Expression: LicenseRef-Atila
|
|
9
|
+
Project-URL: Homepage, https://github.com/atila1358/uranus
|
|
10
|
+
Project-URL: Documentation, https://github.com/atila1358/uranus/wiki
|
|
11
|
+
Project-URL: Issues, https://github.com/atila1358/uranus/issues
|
|
12
|
+
Requires-Python: >=3.8
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE
|
|
15
|
+
Dynamic: license-file
|
|
16
|
+
|
|
17
|
+
# Uranus IDE
|
|
18
|
+
|
|
19
|
+
Uranus is a lightweight, extensible Python IDE inspired by Jupyter. It supports interactive coding, markdown documentation, and modular plugin architecture — all built with PyQt5.
|
|
20
|
+
|
|
21
|
+
> 🔥 **Uranus IDE is the first modular Python IDE with full RTL support across all editing modes.**
|
|
22
|
+
|
|
23
|
+
## Features
|
|
24
|
+
|
|
25
|
+
- 🧠 Code and Markdown cells with live execution
|
|
26
|
+
- 📊 Output viewers for text, tables, and images
|
|
27
|
+
- 🧰 Customizable toolbar and editor settings
|
|
28
|
+
- 🧾 Project scaffolding with license and metadata
|
|
29
|
+
- 🧱 File explorer with context menu and keyboard shortcuts
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### ✨ Key Features
|
|
33
|
+
|
|
34
|
+
- ✅ Cell-based editing with IPython kernel
|
|
35
|
+
- ✅ Modular architecture with PyQt5
|
|
36
|
+
- ✅ **Full RTL (Right-to-Left) support** for Persian, Arabic, and other RTL languages
|
|
37
|
+
- ✅ Custom file explorer with inline editing
|
|
38
|
+
- ✅ Project creation and metadata management
|
|
39
|
+
|
|
40
|
+
## Installation
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
pip install -r requirements.txt
|
|
44
|
+
python core.py
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Uranus IDE
|
|
2
|
+
|
|
3
|
+
Uranus is a lightweight, extensible Python IDE inspired by Jupyter. It supports interactive coding, markdown documentation, and modular plugin architecture — all built with PyQt5.
|
|
4
|
+
|
|
5
|
+
> 🔥 **Uranus IDE is the first modular Python IDE with full RTL support across all editing modes.**
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- 🧠 Code and Markdown cells with live execution
|
|
10
|
+
- 📊 Output viewers for text, tables, and images
|
|
11
|
+
- 🧰 Customizable toolbar and editor settings
|
|
12
|
+
- 🧾 Project scaffolding with license and metadata
|
|
13
|
+
- 🧱 File explorer with context menu and keyboard shortcuts
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### ✨ Key Features
|
|
17
|
+
|
|
18
|
+
- ✅ Cell-based editing with IPython kernel
|
|
19
|
+
- ✅ Modular architecture with PyQt5
|
|
20
|
+
- ✅ **Full RTL (Right-to-Left) support** for Persian, Arabic, and other RTL languages
|
|
21
|
+
- ✅ Custom file explorer with inline editing
|
|
22
|
+
- ✅ Project creation and metadata management
|
|
23
|
+
|
|
24
|
+
## Installation
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
pip install -r requirements.txt
|
|
28
|
+
python core.py
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Uranus IDE
|
|
2
|
+
|
|
3
|
+
Uranus is a lightweight, extensible Python IDE inspired by Jupyter. It supports interactive coding, markdown documentation, and modular plugin architecture — all built with PyQt5.
|
|
4
|
+
|
|
5
|
+
## 🚀 Getting Started
|
|
6
|
+
|
|
7
|
+
To launch the application:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
python src/Uranus/core.py
|
|
11
|
+
|
|
12
|
+
Uranus/
|
|
13
|
+
├── src/Uranus/ # Main source code
|
|
14
|
+
│ ├── core.py # Entry point of the application
|
|
15
|
+
│ ├── AboutWindow.py
|
|
16
|
+
│ ├── Cell.py
|
|
17
|
+
│ ├── CodeEditor.py
|
|
18
|
+
│ ├── ...
|
|
19
|
+
│ └── utils.py
|
|
20
|
+
├── docs/ # Technical documentation
|
|
21
|
+
├── tests/ # (Empty) Reserved for future test scripts
|
|
22
|
+
├── LICENSE # Custom license by Atila Ghashghaie
|
|
23
|
+
├── README.md # Project overview and usage
|
|
24
|
+
├── pyproject.toml # Project metadata and build config
|
|
25
|
+
├── requirements.txt # Python dependencies
|
|
26
|
+
├── .gitignore # Files to exclude from version control
|
|
27
|
+
├── CONTRIBUTING.md # Guidelines for contributors
|
|
28
|
+
|
|
29
|
+
📘 License
|
|
30
|
+
This project is licensed under a custom license by Atila Ghashghaie.
|
|
31
|
+
See LICENSE for full terms and restrictions.
|
|
32
|
+
✉️ Contact
|
|
33
|
+
Developed by Atila Ghashghaie
|
|
34
|
+
📧 atila.gh@gmail.com
|
|
35
|
+
WWW.puyeshmashin.ir
|
|
36
|
+
https://github.com/atila1358
|
|
37
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Uranus IDE — Technical Overview
|
|
2
|
+
|
|
3
|
+
Uranus is a modular, extensible Python IDE inspired by Jupyter, built with PyQt5. It supports interactive coding, markdown documentation, and structured output visualization — all within a clean, event-safe architecture.
|
|
4
|
+
|
|
5
|
+
## 🧱 Architecture Summary
|
|
6
|
+
|
|
7
|
+
- `core.py`: Entry point of the application. Initializes MainWindow and global settings.
|
|
8
|
+
- `MainWindow.py`: Hosts the MDI interface, file explorer, and menu system.
|
|
9
|
+
- `WorkWindow.py`: Manages individual notebook tabs and cell containers.
|
|
10
|
+
- `Cell.py`: Represents a code or markdown cell with execution/output logic.
|
|
11
|
+
- `CodeEditor.py`: Handles Python editing with syntax highlighting and smart indentation.
|
|
12
|
+
- `DocumentEditor.py`: Rich text editor for markdown cells.
|
|
13
|
+
- `OutputEditor.py`: Displays execution results (text, image, table).
|
|
14
|
+
- `SettingWindow.py`: Manages appearance and font settings.
|
|
15
|
+
- `ProjectInfoDialog.py`: Creates structured project folders with metadata and license.
|
|
16
|
+
- `utils.py`: Shared helpers and file operations.
|
|
17
|
+
|
|
18
|
+
## 📦 Folder Structure
|
|
19
|
+
uranus-ide/
|
|
20
|
+
├── src/Uranus/
|
|
21
|
+
│ ├── core.py │
|
|
22
|
+
├── MainWindow.py │
|
|
23
|
+
├── WorkWindow.py │
|
|
24
|
+
├── Cell.py │
|
|
25
|
+
├── CodeEditor.py │
|
|
26
|
+
├── OutputEditor.py │
|
|
27
|
+
├── SettingWindow.py │
|
|
28
|
+
├── ProjectInfoDialog.py │
|
|
29
|
+
└── ... ├── docs/ │
|
|
30
|
+
└── index.md
|
|
31
|
+
├── tests/ # Reserved for future test scripts
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## 🧠 Design Principles
|
|
36
|
+
|
|
37
|
+
- Modular class-based architecture
|
|
38
|
+
- Event-safe UI logic
|
|
39
|
+
- Explicit docstrings for all major classes
|
|
40
|
+
- Persian-English bilingual support
|
|
41
|
+
- Custom licensing and attribution enforcement
|
|
42
|
+
|
|
43
|
+
## 📚 Licensing
|
|
44
|
+
|
|
45
|
+
This project is governed by a custom license authored by Atila Ghashghaie.
|
|
46
|
+
Commercial use, redistribution, or rebranding is strictly prohibited without written permission.
|
|
47
|
+
See [LICENSE](../LICENSE) for full terms.
|
|
48
|
+
|
|
49
|
+
## ✉️ Contact
|
|
50
|
+
|
|
51
|
+
Developed by Atila Ghashghaie
|
|
52
|
+
📧 atila.gh@gmail.com
|
|
53
|
+
📞 +98 912 319 4008
|
|
54
|
+
🌐 www.Puyeshmashin.ir
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "Uranus-IDE"
|
|
3
|
+
version = "1.0.0a1"
|
|
4
|
+
description = "A lightweight, extensible Python IDE inspired by Jupyter, built with PyQt5."
|
|
5
|
+
authors = [
|
|
6
|
+
{ name = "Atila Ghashghaie", email = "atila.gh@gmail.com" }
|
|
7
|
+
]
|
|
8
|
+
license = "LicenseRef-Atila"
|
|
9
|
+
license-files = ["LICENSE"]
|
|
10
|
+
readme = "README.md"
|
|
11
|
+
requires-python = ">=3.8"
|
|
12
|
+
dependencies = [
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
[project.urls]
|
|
19
|
+
Homepage = "https://github.com/atila1358/uranus"
|
|
20
|
+
Documentation = "https://github.com/atila1358/uranus/wiki"
|
|
21
|
+
Issues = "https://github.com/atila1358/uranus/issues"
|
|
22
|
+
|
|
23
|
+
[tool.setuptools]
|
|
24
|
+
package-dir = { "" = "src" }
|
|
25
|
+
|
|
26
|
+
[tool.setuptools.packages.find]
|
|
27
|
+
where = ["src"]
|
|
28
|
+
|
|
29
|
+
[build-system]
|
|
30
|
+
requires = ["setuptools>=42", "wheel"]
|
|
31
|
+
build-backend = "setuptools.build_meta"
|
|
32
|
+
|
|
33
|
+
[project.scripts]
|
|
34
|
+
uranus = "Uranus.core:main"
|
|
35
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
[metadata]
|
|
2
|
+
name = uranus-ide
|
|
3
|
+
version = 1.0.0
|
|
4
|
+
author = Atila Ghashghaie
|
|
5
|
+
author_email = atila.gh@gmail.com
|
|
6
|
+
description = A lightweight, extensible Python IDE inspired by Jupyter, built with PyQt5.
|
|
7
|
+
long_description = file: README.md
|
|
8
|
+
long_description_content_type = text/markdown
|
|
9
|
+
license = Custom License by Atila Ghashghaie
|
|
10
|
+
url = https://github.com/atila1358/uranus
|
|
11
|
+
project_urls =
|
|
12
|
+
Documentation = https://github.com/atila1358/uranus/wiki
|
|
13
|
+
Issues = https://github.com/atila1358/uranus/issues
|
|
14
|
+
|
|
15
|
+
[options]
|
|
16
|
+
packages = find:
|
|
17
|
+
package_dir =
|
|
18
|
+
= src
|
|
19
|
+
include_package_data = True
|
|
20
|
+
python_requires = >=3.8
|
|
21
|
+
install_requires =
|
|
22
|
+
PyQt5>=5.15
|
|
23
|
+
IPython>=8.0
|
|
24
|
+
nbformat>=5.9
|
|
25
|
+
markdown2>=2.4
|
|
26
|
+
html2text>=2020.1.16
|
|
27
|
+
|
|
28
|
+
[options.packages.find]
|
|
29
|
+
where = src
|
|
30
|
+
|
|
31
|
+
[options.package_data]
|
|
32
|
+
Uranus =
|
|
33
|
+
font/*.ttf
|
|
34
|
+
font/*.otf
|
|
35
|
+
|
|
36
|
+
[options.entry_points]
|
|
37
|
+
console_scripts =
|
|
38
|
+
uranus = Uranus.__main__:main
|
|
39
|
+
|
|
40
|
+
[egg_info]
|
|
41
|
+
tag_build =
|
|
42
|
+
tag_date = 0
|
|
43
|
+
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
from PyQt5.QtWidgets import QWidget, QLabel, QVBoxLayout, QFrame
|
|
4
|
+
from PyQt5.QtGui import QPixmap, QFont
|
|
5
|
+
from PyQt5.QtCore import Qt
|
|
6
|
+
import os
|
|
7
|
+
|
|
8
|
+
class AboutWindow(QWidget):
|
|
9
|
+
"""
|
|
10
|
+
A simple informational window displaying details about the Uranus IDE.
|
|
11
|
+
|
|
12
|
+
Features:
|
|
13
|
+
- Shows application logo, name, version, and description.
|
|
14
|
+
- Includes developer contact information and external links.
|
|
15
|
+
- Uses a clean vertical layout with styled labels and separators.
|
|
16
|
+
|
|
17
|
+
Components:
|
|
18
|
+
- QPixmap logo loaded from local image directory.
|
|
19
|
+
- QLabel elements for name, version, description, and developer info.
|
|
20
|
+
- QFrame separator for visual clarity.
|
|
21
|
+
|
|
22
|
+
Usage:
|
|
23
|
+
Typically invoked from the Help or About section of the Uranus IDE.
|
|
24
|
+
Provides branding and contact context for users and contributors.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
def __init__(self):
|
|
28
|
+
super().__init__()
|
|
29
|
+
self.setWindowTitle("About Uranus IDE")
|
|
30
|
+
self.setFixedSize(700, 350)
|
|
31
|
+
self.init_ui()
|
|
32
|
+
|
|
33
|
+
def init_ui(self):
|
|
34
|
+
logo_label = QLabel()
|
|
35
|
+
icon_path = os.path.join(os.path.dirname(__file__), "image", "uranus.png")
|
|
36
|
+
pixmap = QPixmap(icon_path)
|
|
37
|
+
logo_label.setPixmap(pixmap.scaled(100, 100, Qt.KeepAspectRatio, Qt.SmoothTransformation))
|
|
38
|
+
logo_label.setAlignment(Qt.AlignCenter)
|
|
39
|
+
|
|
40
|
+
name_label = QLabel("Uranus IDE")
|
|
41
|
+
name_label.setFont(QFont("Arial", 20, QFont.Bold))
|
|
42
|
+
name_label.setAlignment(Qt.AlignCenter)
|
|
43
|
+
|
|
44
|
+
version_label = QLabel("Version 1.0.0")
|
|
45
|
+
version_label.setFont(QFont("Arial", 12))
|
|
46
|
+
version_label.setAlignment(Qt.AlignCenter)
|
|
47
|
+
|
|
48
|
+
separator = QFrame()
|
|
49
|
+
separator.setFrameShape(QFrame.HLine)
|
|
50
|
+
separator.setFrameShadow(QFrame.Sunken)
|
|
51
|
+
|
|
52
|
+
description = QLabel(
|
|
53
|
+
"Uranus IDE is a lightweight, extensible development environment inspired by Jupyter.\n"
|
|
54
|
+
"It supports interactive coding, modular plugin architecture, and a clean UI.\n"
|
|
55
|
+
"Designed for clarity, speed, and educational use."
|
|
56
|
+
)
|
|
57
|
+
description.setWordWrap(True)
|
|
58
|
+
description.setAlignment(Qt.AlignTop)
|
|
59
|
+
description.setAlignment(Qt.AlignCenter)
|
|
60
|
+
|
|
61
|
+
description.setFont(QFont("Arial", 11))
|
|
62
|
+
|
|
63
|
+
developer_info = QLabel(
|
|
64
|
+
"Developed by Attila\n"
|
|
65
|
+
"Contact: attila.gh@outlook.com\n"
|
|
66
|
+
'GitHub : https://github.com/atila1358/uranus\n'
|
|
67
|
+
"Website: www.Puyeshmashin.ir\n\n"
|
|
68
|
+
)
|
|
69
|
+
developer_info.setFont(QFont("Arial", 10))
|
|
70
|
+
|
|
71
|
+
layout = QVBoxLayout()
|
|
72
|
+
layout.addWidget(logo_label)
|
|
73
|
+
layout.addWidget(name_label)
|
|
74
|
+
layout.addWidget(version_label)
|
|
75
|
+
layout.addWidget(separator)
|
|
76
|
+
layout.addWidget(description)
|
|
77
|
+
layout.addStretch()
|
|
78
|
+
layout.addWidget(developer_info)
|
|
79
|
+
|
|
80
|
+
self.setLayout(layout)
|
|
81
|
+
|