Added Qt GUI page and a blank Page about the Doc

This commit is contained in:
Centurion_Prime 2024-10-19 13:27:43 +02:00
parent c1333b652a
commit b17a526541
19 changed files with 177 additions and 0 deletions

3
.idea/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

8
.idea/TSGC.iml Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="EMPTY_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/misc.xml Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectResources">
<xml-schema-version>XMLSchema_1_1</xml-schema-version>
</component>
</project>

8
.idea/modules.xml Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/TSGC.iml" filepath="$PROJECT_DIR$/.idea/TSGC.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

6
Writerside/c.list Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE categories
SYSTEM "https://resources.jetbrains.com/writerside/1.0/categories.dtd">
<categories>
<category id="wrs" name="Writerside documentation" order="1"/>
</categories>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE buildprofiles SYSTEM "https://resources.jetbrains.com/writerside/1.0/build-profiles.dtd">
<buildprofiles xsi:noNamespaceSchemaLocation="https://resources.jetbrains.com/writerside/1.0/build-profiles.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<variables></variables>
<build-profile instance="tsgc">
<variables>
<noindex-content>true</noindex-content>
</variables>
</build-profile>
</buildprofiles>

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rules SYSTEM "https://resources.jetbrains.com/writerside/1.0/redirection-rules.dtd">
<rules>
<!-- format is as follows
<rule id="<unique id>">
<accepts>page.html</accepts>
</rule>
-->
<rule id="78eaee43">
<description>Created after removal of "Qt GUI in Suyu" id="qt-gui-in-suyu" from The Suyu Grand Codex
</description>
<accepts>Qt-GUI-in-Suyu-id-qt-gui-in-suyu.html</accepts>
</rule>
<rule id="88c5d6">
<description>Created after removal of "Suyu's Qt-based GUI Framework" from The Suyu Grand Codex</description>
<accepts>Suyu-s-Qt-based-GUI-Framework.html</accepts>
</rule>
</rules>

View file

@ -0,0 +1,84 @@
# Suyu-GUI-Framework
This document provides information for developers who want to contribute to the Suyu emulator project,
particularly focusing on the GUI aspects.
## Qt GUI in Suyu
The Suyu emulator utilizes the Qt framework for its graphical user interface (GUI).
This section provides an overview of how the Qt GUI functions within the project.
## Qt GUI Components
Qt is a powerful and versatile framework for creating cross-platform graphical user interfaces (GUIs).
It provides a rich set of tools and classes that make GUI development efficient and enjoyable.
This section provides a broad overview of Qt's core concepts and how it implements GUIs.
### Core Concepts
* **Widgets:**
The fundamental building blocks of a Qt GUI are widgets. Widgets are visual elements, such as buttons, labels, text
boxes, and windows. Qt provides a wide variety of pre-built widgets, and you can also create your own custom widgets.
* **Layouts:**
Layouts manage the arrangement and positioning of widgets within a window or container. Qt offers various layout
managers, including vertical layouts (`QVBoxLayout`), horizontal layouts (`QHBoxLayout`), and grid layouts
(`QGridLayout`). Layouts ensure that your GUI adapts to different window sizes and screen resolutions.
* **Signals and Slots:**
Qt uses a signal and slot mechanism for communication between objects. Signals are emitted by objects when certain
events occur (e.g., a button click). Slots are functions that are connected to signals and are executed when the
corresponding signal is emitted. This mechanism allows you to define the behavior of your GUI in response to user
interactions.
* **Events:**
Qt applications are event-driven. Events are occurrences or actions, such as mouse clicks, key presses, or window
resize events. Qt provides an event system for handling and responding to these events.
* **Painting:** Qt allows you to customize the appearance of widgets by painting on them. You can use the
`QPainter` class to draw shapes, text, and images on widgets, giving you fine-grained control over the look and
feel of your GUI.
### GUI Implementation
Qt offers two main approaches to implementing GUIs:
* **Qt Widgets:**
This is the traditional approach, using C++ classes to create and manage widgets and layouts.
It provides a procedural programming style for GUI development.
* **Qt Quick (QML):**
This is a more declarative approach, using the QML language (a JavaScript-based language) to define the GUI.
QML allows you to create dynamic and visually appealing interfaces with less code.
### Key Classes
Some of the essential classes in Qt's GUI module include:
* **`QWidget`:** The base class for all widgets.
* **`QApplication`:** The main application class.
* **`QMainWindow`:** A class for creating main application windows.
* **`QDialog`:** A class for creating dialog boxes.
* **`QPushButton`:** A class for creating buttons.
* **`QLabel`:** A class for displaying text or images.
* **`QLineEdit`:** A class for single-line text input.
* **`QVBoxLayout`, `QHBoxLayout`, `QGridLayout`:** Classes for managing layouts.
### Benefits of Qt GUI
* **Cross-Platform:**
Qt GUIs can run on various operating systems, including Windows, macOS, Linux, and mobile platforms.
* **Native Look and Feel:**
Qt applications can have a native look and feel on different platforms.
* **Rich Functionality:**
Qt provides a comprehensive set of widgets and tools for building feature-rich GUIs.
* **Extensibility:**
You can create custom widgets and extend Qt's functionality.
* **Performance:**
Qt GUIs are generally performant and efficient.
This overview provides a solid foundation for understanding Qt's core
concepts and how it implements GUIs. You can further expand this section
in your documentation by providing more detailed explanations of specific
concepts, examples of GUI code, and guidance on choosing the right approach
(Qt Widgets or Qt Quick) for different scenarios.

View file

@ -0,0 +1 @@
# About The Suyu Grand Codex

11
Writerside/tsgc.tree Normal file
View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE instance-profile
SYSTEM "https://resources.jetbrains.com/writerside/1.0/product-profile.dtd">
<instance-profile id="tsgc"
name="The Suyu Grand Codex"
start-page="starter-topic.md">
<toc-element topic="starter-topic.md"/>
<toc-element topic="Suyu-GUI-Framework.md"/>
</instance-profile>

5
Writerside/v.list Normal file
View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE vars SYSTEM "https://resources.jetbrains.com/writerside/1.0/vars.dtd">
<vars>
<var name="product" value="Writerside"/>
</vars>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ihp SYSTEM "https://resources.jetbrains.com/writerside/1.0/ihp.dtd">
<ihp version="2.0">
<topics dir="topics" web-path="topics"/>
<images dir="images" web-path="images"/>
<instance src="tsgc.tree" version="0.0.0"/>
</ihp>