easygui-wrap


Nameeasygui-wrap JSON
Version 1.0.8 PyPI version JSON
download
home_pagehttps://github.com/thesmal
SummaryA beginner-friendly, stylish GUI wrapper for Python using DearPyGui.
upload_time2025-10-24 07:12:55
maintainerNone
docs_urlNone
authorZaik
requires_python>=3.8
licenseNone
keywords gui easygui_wrap dearpygui python
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🎉 EasyGUI Wrap 🖥️

**EasyGUI Wrap** is a playful, lightweight Python GUI library built on top of [DearPyGui](https://github.com/hoffstadt/DearPyGui). It simplifies GUI creation while giving you full control of DearPyGui under the hood. ✨

When installed, you can simply import it as `easygui` and start using the `EasyGUI` class immediately:

```python
import easygui

app = easygui.EasyGUI("My App", (800, 600))
```

Or explicitly:

```python
from easygui import EasyGUI
app = EasyGUI("My App", (800, 600))
```

---

## 🌟 Features

* Simplified API: `add_label`, `add_button`, `add_entry`.
* Supports **foreground/background colors**, **font size**, and **tags**. 🎨
* Full **dynamic resizing**: windows can automatically match the viewport. 📐
* Control **window decorations** separately:

  * `decorated` → window title bar.
  * `viewport_decorated` → OS-level decorations.
* Callbacks can use **normal arguments** and **tag-based arguments**. 🪄
* Full raw **DearPyGui access** for custom widgets. 🎨
* Two-way compatibility: EasyGUI and manual DPG widgets can interact.
* Fun emojis in labels, buttons, and widgets! 😎
* Dynamic fullscreen support for any window. 🖥️

---

## 🚀 Installation

```bash
pip install easygui_wrap
```

Dependencies `dearpygui` and `webcolors` are installed automatically.

---

## 🏁 Quick Start

```python
import easygui

def greet(name):
    print(f"Hello, {name}! 👋")

app = easygui.EasyGUI("Demo App 🎈", (800, 600), bg_color="lightblue", decorated=False, viewport_decorated=True)

# EasyGUI widgets
app.add_label("Enter your name: 📝", fg="black")
app.add_entry(tag="name")
app.add_button("Say Hello 👋", greet, args_tags=["name"], bg="green", fg="white", font_size=14)

# Manual DPG widgets
dpg = app.dpg_module
manual_text = dpg.add_text("Manual DPG Text ✨", parent=app.main_window_tag)
manual_input = dpg.add_input_text(label="Manual input 🔑", parent=app.main_window_tag)
app.register_widget("manual_input", manual_input)

# Fullscreen a window dynamically
win = app.add_window("Fullscreen Window")
app.fullscreen(win, True)

app.show()
```

---

## 🛠️ API

### Constructor

```python
EasyGUI(title="My App", size=(800,600), bg_color="gray",
        decorated=True, viewport_decorated=True)
```

* `title`: Window title.
* `size`: Tuple `(width, height)`.
* `bg_color`: Background color.
* `decorated`: Show window title bar.
* `viewport_decorated`: Show OS-level viewport decorations.

### Widgets

#### add_label

```python
add_label(text, tag=None, fg="white", font_size=None)
```

* `text`: Label text (emojis welcome! 😎)
* `tag`: Optional unique tag.
* `fg`: Foreground color.
* `font_size`: Optional font size.

#### add_entry

```python
add_entry(label="", default_value="", tag=None, width=200)
```

* `label`: Entry label.
* `default_value`: Initial text.
* `tag`: Optional unique tag.
* `width`: Entry width.

#### add_button

```python
add_button(text, callback=None, args=None, args_tags=None, fg="white", bg="gray", font_size=None, tag=None)
```

* `text`: Button label (emojis welcome! 🎉)
* `callback`: Function to call.
* `args`: List of normal arguments.
* `args_tags`: List of tags to pull values from.
* `fg`, `bg`: Colors.
* `font_size`: Optional font size.
* `tag`: Optional unique tag.

### Fullscreen

```python
fullscreen(window_tag=None, enable=True)
```

* `window_tag`: Target window tag, defaults to main window.
* `enable`: True to enable, False to disable.
* Automatically resizes window to viewport dynamically.

### Get/Set values

```python
value = app.get(tag)
app.set(tag, value)
```

### Register manual DPG widget

```python
app.register_widget(tag, dpg_id)
```

### Access raw DearPyGui

```python
dpg = app.dpg_module
main_window = app.main_window_tag
```

---

## 🎮 Example: Full Interoperability

```python
import easygui

def greet(name):
    print(f"Hello, {name}! 😎")

app = easygui.EasyGUI("Full Demo 🚀", (800,600), decorated=False, viewport_decorated=True)
app.add_label("Enter your name: 📝", fg="black")
app.add_entry(tag="name")
app.add_button("Say Hello 👋", greet, args_tags=["name"], bg="green", fg="white", font_size=14)

# Manual DPG widgets
manual_text = app.dpg_module.add_text("Manual DPG Text ✨", parent=app.main_window_tag)
manual_input = app.dpg_module.add_input_text(label="Manual input 🔑", parent=app.main_window_tag)
app.register_widget("manual_input", manual_input)

# Callback accessing manual widget
app.add_button("Print Manual 🔍", lambda: print(app.get("manual_input")))

# Fullscreen a specific window
win = app.add_window("Fullscreen Window")
app.fullscreen(win, True)

app.show()
```

---

## 📜 License

MIT License

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/thesmal",
    "name": "easygui-wrap",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "gui easygui_wrap dearpygui python",
    "author": "Zaik",
    "author_email": "stickma6@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/60/a6/e1cd4bc45f98420c6e74385f5856f2c537f418ebfa7f6ee3caba77f67643/easygui_wrap-1.0.8.tar.gz",
    "platform": null,
    "description": "# \ud83c\udf89 EasyGUI Wrap \ud83d\udda5\ufe0f\n\n**EasyGUI Wrap** is a playful, lightweight Python GUI library built on top of [DearPyGui](https://github.com/hoffstadt/DearPyGui). It simplifies GUI creation while giving you full control of DearPyGui under the hood. \u2728\n\nWhen installed, you can simply import it as `easygui` and start using the `EasyGUI` class immediately:\n\n```python\nimport easygui\n\napp = easygui.EasyGUI(\"My App\", (800, 600))\n```\n\nOr explicitly:\n\n```python\nfrom easygui import EasyGUI\napp = EasyGUI(\"My App\", (800, 600))\n```\n\n---\n\n## \ud83c\udf1f Features\n\n* Simplified API: `add_label`, `add_button`, `add_entry`.\n* Supports **foreground/background colors**, **font size**, and **tags**. \ud83c\udfa8\n* Full **dynamic resizing**: windows can automatically match the viewport. \ud83d\udcd0\n* Control **window decorations** separately:\n\n  * `decorated` \u2192 window title bar.\n  * `viewport_decorated` \u2192 OS-level decorations.\n* Callbacks can use **normal arguments** and **tag-based arguments**. \ud83e\ude84\n* Full raw **DearPyGui access** for custom widgets. \ud83c\udfa8\n* Two-way compatibility: EasyGUI and manual DPG widgets can interact.\n* Fun emojis in labels, buttons, and widgets! \ud83d\ude0e\n* Dynamic fullscreen support for any window. \ud83d\udda5\ufe0f\n\n---\n\n## \ud83d\ude80 Installation\n\n```bash\npip install easygui_wrap\n```\n\nDependencies `dearpygui` and `webcolors` are installed automatically.\n\n---\n\n## \ud83c\udfc1 Quick Start\n\n```python\nimport easygui\n\ndef greet(name):\n    print(f\"Hello, {name}! \ud83d\udc4b\")\n\napp = easygui.EasyGUI(\"Demo App \ud83c\udf88\", (800, 600), bg_color=\"lightblue\", decorated=False, viewport_decorated=True)\n\n# EasyGUI widgets\napp.add_label(\"Enter your name: \ud83d\udcdd\", fg=\"black\")\napp.add_entry(tag=\"name\")\napp.add_button(\"Say Hello \ud83d\udc4b\", greet, args_tags=[\"name\"], bg=\"green\", fg=\"white\", font_size=14)\n\n# Manual DPG widgets\ndpg = app.dpg_module\nmanual_text = dpg.add_text(\"Manual DPG Text \u2728\", parent=app.main_window_tag)\nmanual_input = dpg.add_input_text(label=\"Manual input \ud83d\udd11\", parent=app.main_window_tag)\napp.register_widget(\"manual_input\", manual_input)\n\n# Fullscreen a window dynamically\nwin = app.add_window(\"Fullscreen Window\")\napp.fullscreen(win, True)\n\napp.show()\n```\n\n---\n\n## \ud83d\udee0\ufe0f API\n\n### Constructor\n\n```python\nEasyGUI(title=\"My App\", size=(800,600), bg_color=\"gray\",\n        decorated=True, viewport_decorated=True)\n```\n\n* `title`: Window title.\n* `size`: Tuple `(width, height)`.\n* `bg_color`: Background color.\n* `decorated`: Show window title bar.\n* `viewport_decorated`: Show OS-level viewport decorations.\n\n### Widgets\n\n#### add_label\n\n```python\nadd_label(text, tag=None, fg=\"white\", font_size=None)\n```\n\n* `text`: Label text (emojis welcome! \ud83d\ude0e)\n* `tag`: Optional unique tag.\n* `fg`: Foreground color.\n* `font_size`: Optional font size.\n\n#### add_entry\n\n```python\nadd_entry(label=\"\", default_value=\"\", tag=None, width=200)\n```\n\n* `label`: Entry label.\n* `default_value`: Initial text.\n* `tag`: Optional unique tag.\n* `width`: Entry width.\n\n#### add_button\n\n```python\nadd_button(text, callback=None, args=None, args_tags=None, fg=\"white\", bg=\"gray\", font_size=None, tag=None)\n```\n\n* `text`: Button label (emojis welcome! \ud83c\udf89)\n* `callback`: Function to call.\n* `args`: List of normal arguments.\n* `args_tags`: List of tags to pull values from.\n* `fg`, `bg`: Colors.\n* `font_size`: Optional font size.\n* `tag`: Optional unique tag.\n\n### Fullscreen\n\n```python\nfullscreen(window_tag=None, enable=True)\n```\n\n* `window_tag`: Target window tag, defaults to main window.\n* `enable`: True to enable, False to disable.\n* Automatically resizes window to viewport dynamically.\n\n### Get/Set values\n\n```python\nvalue = app.get(tag)\napp.set(tag, value)\n```\n\n### Register manual DPG widget\n\n```python\napp.register_widget(tag, dpg_id)\n```\n\n### Access raw DearPyGui\n\n```python\ndpg = app.dpg_module\nmain_window = app.main_window_tag\n```\n\n---\n\n## \ud83c\udfae Example: Full Interoperability\n\n```python\nimport easygui\n\ndef greet(name):\n    print(f\"Hello, {name}! \ud83d\ude0e\")\n\napp = easygui.EasyGUI(\"Full Demo \ud83d\ude80\", (800,600), decorated=False, viewport_decorated=True)\napp.add_label(\"Enter your name: \ud83d\udcdd\", fg=\"black\")\napp.add_entry(tag=\"name\")\napp.add_button(\"Say Hello \ud83d\udc4b\", greet, args_tags=[\"name\"], bg=\"green\", fg=\"white\", font_size=14)\n\n# Manual DPG widgets\nmanual_text = app.dpg_module.add_text(\"Manual DPG Text \u2728\", parent=app.main_window_tag)\nmanual_input = app.dpg_module.add_input_text(label=\"Manual input \ud83d\udd11\", parent=app.main_window_tag)\napp.register_widget(\"manual_input\", manual_input)\n\n# Callback accessing manual widget\napp.add_button(\"Print Manual \ud83d\udd0d\", lambda: print(app.get(\"manual_input\")))\n\n# Fullscreen a specific window\nwin = app.add_window(\"Fullscreen Window\")\napp.fullscreen(win, True)\n\napp.show()\n```\n\n---\n\n## \ud83d\udcdc License\n\nMIT License\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A beginner-friendly, stylish GUI wrapper for Python using DearPyGui.",
    "version": "1.0.8",
    "project_urls": {
        "Homepage": "https://github.com/thesmal"
    },
    "split_keywords": [
        "gui",
        "easygui_wrap",
        "dearpygui",
        "python"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0da7cec38e35ec505b384876a684dfffaee49b7af721acbc6c74a360771535e8",
                "md5": "b087a84bb1eb2a026b04721473e0d34b",
                "sha256": "c8fec05c4fb0e88a1844e1dd6302632ccb978ae448b87dcd1f0483b3980dba8e"
            },
            "downloads": -1,
            "filename": "easygui_wrap-1.0.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b087a84bb1eb2a026b04721473e0d34b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4394,
            "upload_time": "2025-10-24T07:12:53",
            "upload_time_iso_8601": "2025-10-24T07:12:53.429973Z",
            "url": "https://files.pythonhosted.org/packages/0d/a7/cec38e35ec505b384876a684dfffaee49b7af721acbc6c74a360771535e8/easygui_wrap-1.0.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "60a6e1cd4bc45f98420c6e74385f5856f2c537f418ebfa7f6ee3caba77f67643",
                "md5": "45754c98c9d122dcb985d8044d1ffa7a",
                "sha256": "1e185b3bb3274c8f44e45a346d6e3aecc281cf2027984dc6792a238646a82742"
            },
            "downloads": -1,
            "filename": "easygui_wrap-1.0.8.tar.gz",
            "has_sig": false,
            "md5_digest": "45754c98c9d122dcb985d8044d1ffa7a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 4222,
            "upload_time": "2025-10-24T07:12:55",
            "upload_time_iso_8601": "2025-10-24T07:12:55.241481Z",
            "url": "https://files.pythonhosted.org/packages/60/a6/e1cd4bc45f98420c6e74385f5856f2c537f418ebfa7f6ee3caba77f67643/easygui_wrap-1.0.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-24 07:12:55",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "easygui-wrap"
}
        
Elapsed time: 1.70385s