96 lines
3.2 KiB
Markdown
96 lines
3.2 KiB
Markdown
|
|
# BudgetPro
|
||
|
|
|
||
|
|
A Qt-based financial management and budgeting application with a ribbon-style interface.
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
|
||
|
|
BudgetPro is a desktop application designed for managing company finances, budgets, products, and invoices. It features a modern ribbon interface similar to Microsoft Office applications, built using Qt Widgets and the SARibbon library.
|
||
|
|
|
||
|
|
## Key Features
|
||
|
|
|
||
|
|
- **Company Management**: Create and manage multiple companies/enterprises
|
||
|
|
- **Product Catalog**: Maintain a database of products/services with pricing
|
||
|
|
- **Third-Party Management**: Track suppliers and customers
|
||
|
|
- **Budget Planning**: Create hierarchical budgets with detailed breakdowns
|
||
|
|
- **Invoice Tracking**: Manage incoming and outgoing invoices
|
||
|
|
- **Data Visualization**: Tree views for hierarchical financial data
|
||
|
|
- **Custom Editors**: Specialized delegates for different data types (combobox, rich text, etc.)
|
||
|
|
|
||
|
|
## Technical Stack
|
||
|
|
|
||
|
|
- **Framework**: Qt 6 (Widgets module)
|
||
|
|
- **UI Library**: SARibbon for ribbon-style interface
|
||
|
|
- **Database**: SQL backend (via custom sqltable.h)
|
||
|
|
- **Build System**: QMake (.pro file)
|
||
|
|
- **Language**: C++11
|
||
|
|
|
||
|
|
## Project Structure
|
||
|
|
|
||
|
|
```
|
||
|
|
BudgetPro/
|
||
|
|
├── main.cpp # Application entry point
|
||
|
|
├── mainwindow.h/cpp # Main window with ribbon interface
|
||
|
|
├── gui/ # GUI forms and components
|
||
|
|
│ ├── form*.ui/h/cpp # Various data entry forms (budget, product, etc.)
|
||
|
|
│ └── SARibbon/ # Ribbon library components
|
||
|
|
├── widget/ # Custom widgets and delegates
|
||
|
|
├── utils/ # Utility classes and helpers
|
||
|
|
├── data/ # Data access layer (sqltable.h)
|
||
|
|
└── resources/ # Qt resource file (icons, stylesheets, etc.)
|
||
|
|
```
|
||
|
|
|
||
|
|
## Getting Started
|
||
|
|
|
||
|
|
### Prerequisites
|
||
|
|
|
||
|
|
- Qt 6 development framework
|
||
|
|
- C++ compiler with C++11 support
|
||
|
|
- Make/build tools
|
||
|
|
|
||
|
|
### Building
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Using qmake
|
||
|
|
qmake BudgetPro.pro
|
||
|
|
make
|
||
|
|
|
||
|
|
# Or using Qt Creator
|
||
|
|
# Open BudgetPro.pro in Qt Creator and build
|
||
|
|
```
|
||
|
|
|
||
|
|
### Running
|
||
|
|
|
||
|
|
```bash
|
||
|
|
./BudgetPro # Linux/macOS
|
||
|
|
BudgetPro.exe # Windows
|
||
|
|
```
|
||
|
|
|
||
|
|
## Data Management
|
||
|
|
|
||
|
|
The application uses a SQL database for persistent storage. Database initialization and schema management are handled through the `sqltable.h` interface.
|
||
|
|
|
||
|
|
## Custom Components
|
||
|
|
|
||
|
|
BudgetPro includes several custom Qt components:
|
||
|
|
- `QMTreeView`: Enhanced tree view for hierarchical data
|
||
|
|
- Custom delegates for:
|
||
|
|
- Combobox editing in tables
|
||
|
|
- Rich text rendering/editing
|
||
|
|
- Numeric input with formatting
|
||
|
|
- Item numbering in hierarchical views
|
||
|
|
- Popup tables for complex selection
|
||
|
|
- `TreeModel`: Custom model for tree-structured data
|
||
|
|
- `AvatarWidget`: For displaying user/entity avatars
|
||
|
|
|
||
|
|
## Extending the Application
|
||
|
|
|
||
|
|
To add new features:
|
||
|
|
1. Create new form classes inheriting from `formBase`
|
||
|
|
2. Design UI forms using Qt Designer (.ui files)
|
||
|
|
3. Implement data access methods using the existing DAO patterns
|
||
|
|
4. Add ribbon buttons/actions in MainWindow to access new features
|
||
|
|
5. Register new forms in the main window's workspace management
|
||
|
|
|
||
|
|
## License
|
||
|
|
|
||
|
|
This project is based on Qt examples and may be subject to Qt's licensing terms. Please check individual file headers for specific copyright and licensing information.
|