pygui/docs.md
2024-09-18 21:17:59 -05:00

218 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# **PyGUI Documentation**
## **1. Initialization and Cleanup**
You must initialize `pygui` before use and quit when you're done with the library.
### **Initialization:**
```python
import pygui
# Initialize PyGUI
pygui.init_pygui()
```
### **Cleanup:**
```python
# When you're done with PyGUI
pygui.quit_pygui()
```
---
### **2. Button**
A button that can detect mouse clicks.
#### **Constructor:**
```python
pygui.Button(text, pos, size)
```
- **text**: `str` - The text displayed on the button.
- **pos**: `tuple(int, int)` - The position of the button `(x, y)`.
- **size**: `tuple(int, int)` - The size of the button `(width, height)`.
#### **Example:**
```python
button = pygui.Button("Click Me", (100, 100), (200, 50))
if button.call(screen):
print("Button clicked!")
```
---
### **3. Slider**
A slider allows the user to adjust a value between a minimum and maximum range.
#### **Slider Constructor:**
```python
pygui.Slider(pos, size, min_value=0, max_value=100, start_value=50)
```
- **pos**: `tuple(int, int)` - The position of the slider `(x, y)`.
- **size**: `tuple(int, int)` - The size of the slider `(width, height)`.
- **min_value**: `float` - Minimum value of the slider.
- **max_value**: `float` - Maximum value of the slider.
- **start_value**: `float` - The initial value of the slider.
#### **Slider Example:**
```python
slider = pygui.Slider((100, 200), (200, 20), min_value=0, max_value=10, start_value=5)
current_value = slider.call(screen)
print(f"Slider Value: {current_value}")
```
---
### **4. Checkbox**
A checkbox element allows for toggling between checked and unchecked states.
#### **Checkbox Constructor:**
```python
pygui.Checkbox(label, pos, checked=False)
```
- **label**: `str` - The label displayed next to the checkbox.
- **pos**: `tuple(int, int)` - The position of the checkbox `(x, y)`.
- **checked**: `bool` - Initial state of the checkbox (default is `False`).
#### **Checkbox Example:**
```python
checkbox = pygui.Checkbox("Enable Feature", (100, 250), checked=True)
if checkbox.call(screen):
print(f"Checkbox state: {checkbox.checked}")
```
---
### **5. TextInput**
A text input field that allows users to type text.
#### **TextInput Constructor:**
```python
pygui.TextInput(pos, size, initial_text="")
```
- **pos**: `tuple(int, int)` - The position of the text input field `(x, y)`.
- **size**: `tuple(int, int)` - The size of the input box `(width, height)`.
- **initial_text**: `str` - The initial text inside the input field (default is an empty string).
#### **TextInput Example:**
```python
text_input = pygui.TextInput((100, 300), (200, 40), initial_text="Hello!")
text_value = text_input.call(screen, event_list)
print(f"Text Input Value: {text_value}")
```
---
### **6. Label**
A label is a simple text display.
#### **Label Constructor:**
```python
pygui.Label(text, pos, font_size=24, color=(255, 255, 255))
```
- **text**: `str` - The text displayed in the label.
- **pos**: `tuple(int, int)` - The position of the label `(x, y)`.
- **font_size**: `int` - The font size (default is 24).
- **color**: `tuple(int, int, int)` - The color of the text `(R, G, B)`.
#### **Label Example:**
```python
label = pygui.Label("This is a label", (100, 50))
label.call(screen)
```
---
### **7. Window**
A window element that can contain multiple GUI elements, such as sliders, buttons, and checkboxes.
#### **Window Constructor:**
```python
pygui.Window(title, pos, size, elements=None, fixed=False)
```
- **title**: `str` - The title of the window.
- **pos**: `tuple(int, int)` - The position of the window `(x, y)`.
- **size**: `tuple(int, int)` - The size of the window `(width, height)`.
- **elements**: `list` - A list of GUI elements to be included in the window.
- **fixed**: `bool` - Whether the window can be moved by the user (default is `False`).
#### **Window Example:**
```python
window = pygui.Window("My Window", (100, 100), (300, 200), elements=[button, slider, checkbox])
window.call(screen)
```
---
### **Example Usage**
Heres an example of how you can combine these elements into a basic GUI:
```python
import pygame
import pygui
# Initialize Pygame and PyGUI
pygui.init_pygui()
pygame.init()
# Create screen
screen = pygame.display.set_mode((800, 600))
# Create GUI elements
button = pygui.Button("Click Me", (100, 100), (200, 50))
slider = pygui.Slider((100, 200), (200, 20), min_value=0, max_value=10, start_value=5)
checkbox = pygui.Checkbox("Enable Feature", (100, 250), checked=True)
label = pygui.Label("This is a label", (100, 50))
window = pygui.Window("Control Window", (400, 100), (300, 400), elements=[button, slider, checkbox, label])
# Main loop
running = True
while running:
screen.fill((30, 30, 30)) # Clear the screen with a dark color
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Call the window and its elements
window.call(screen)
# Update display
pygame.display.flip()
# Quit PyGUI and Pygame
pygui.quit_pygui()
pygame.quit()
```